Я запускаю блокноты в Google Colab и там устанавливаю миниконду и создаю подходящую среду для приложения. Хорошо иметь возможность узнать, какая версия Python на самом деле установлена в вашей среде.
Например:
Вызов Platform.python_version() дает 3.10.12
Вызов !Python --version дает 3.12.2
Вызов !conda list python также дает 3.12.2
Мне кажется, что Platform.python_version() относится к какой-то другой установке Python, о которой я не знаю. Вероятно, в этом примере список !conda дает важную информацию для локальной среды, верно?
И что на самом деле представляет собой эта другая установка Python?
<продолжение> Google Colab — совсем другое дело (несмотря на то, что многие люди говорят так, как будто они используют блокноты Jupyter), и поэтому на самом деле это не было проблемой, поскольку они гарантировали, что восклицательный знак работает с pip. Тем не менее, я знаю, что они, наконец, добавили поддержку %pip, чтобы сделать это последовательным, и я подозреваю, что они добавили %conda и в то же время, возможно?? Опять же, это совсем другой зверь, чем Jupyter, у которого эти волшебные версии есть с 2019 года.
Спасибо. Протестирован список %pip и выдает ожидаемую информацию, но не отображает версию Python в записной книжке. Его просто нет. Что касается списка %conda, я получаю ValueError, что «...ядро Python не является средой Conda...». Не знаю, как это интерпретировать. В ноутбуке используется Python и работает нормально.
Мой подход/желание — использовать идентичные блокноты и общий сценарий установки Python, который работает как в Windows, так и в Linux, а также в локальном блокноте Jupyter и в удаленном блокноте Colab. На самом деле пока все работает вполне нормально. Но мою функцию setup_info(), которая перечисляет версии ключевых пакетов и т. д., необходимо исправить, чтобы она сообщала версию Python для ноутбука. Кажется, платформа.python_version() должна работать везде...
Для использования сервиса MyBinder.org (см. мои комментарии под постом Джонни) параллельно с вашими локальными материалами вы можете создать каталог binder, в который поместите файлы конфигурации, которые MyBinder будет использовать преимущественно. Другими словами, если существует каталог binder или .binder, MyBinder будет использовать файлы конфигурации в нем и игнорировать файлы в корне. Таким образом, те, что находятся в корне, могут по-прежнему использоваться в других ситуациях, например, при локальном использовании.
Да, в блокнотах Colab есть краткий список команд для настройки Colab и выделения нужного места на Github. Затем выполняется общая настройка: один и тот же сценарий как для Colab, так и для локальной установки, и оба обеспечивают среду conda. Конечно, мне понравится идея переплета!






Итак, ноутбуки запускаются с использованием ядер Python. И ядро может отличаться от ядра по умолчанию в вашем терминале bash/zsh или CommandPrompt.
Когда вы запустите этот фрагмент, вы получите версию Python, которая используется внутри Jupyter Notebook (ядро Notebook).
platform.python_version()
Для сравнения, когда вы запускаете приведенный ниже код, вы получаете среду Python, которая используется в вашем терминале bash/zsh/CommandPrompt.
!Python --version gives 3.12.2
!conda list python gives also 3.12.2
Скорее всего, это означает, что в вашей среде 3.12.2 не установлен jupyter lab и, следовательно, команда jupyter указывает на какую-то другую среду.
Также в качестве решения я бы рекомендовал создать новое ядро Python в блокноте Jupyter и в пути к ядру указать путь к Python, который вы хотите использовать во время кодирования.
Спасибо за ваш ответ. Ключевым моментом является то, что я работаю как на локальных машинах, так и на удаленных виртуальных машинах Google Colab. Я думаю, что мое замешательство связано с Colab. Когда я в Colab установил miniconda и создал среду, в которой хочу работать, я думаю, что список !conda содержит актуальные пакеты и версии, доступные в блокноте. Поэтому я подумал, что версия Python, которую я нашел здесь по !conda list python, на самом деле является средой Python для ноутбука. Но вы имеете в виду, что это не так, верно? Можете ли вы рассказать здесь немного подробнее?
Хорошо, кажется, я пропустил часть о Google Colab. В любом случае, вы все правильно поняли, в вашем случае версия Python в ноутбуке — 3.10 и отличается от Python, который вы установили в качестве основного системного Python. К сожалению, изменить версию Python в блокнотах Colab очень сложно. Например, прочитайте эту ветку, где разработчик Colab отвечает, что они не поддерживают изменение версий Python: github.com/googlecolab/colabtools/issues/4212. Однако есть несколько очень сложных обходных путей, которые вы можете использовать в Google и попытаться им следовать...
Лично я не буду рекомендовать какой-либо из этих обходных путей по следующей причине. Скорее всего, вы используете Google Colab для доступа к графическим процессорам. Google Colab по умолчанию предоставляет вам лучшие конфигурации для своих экземпляров графических процессоров. Изменение версии Python может вызвать ошибки в cuda_libs, затем в версиях тензорного потока, а затем еще в чем-то. Поэтому я советую использовать его как есть и понизить свой код до версии Python, поддерживаемой в Colab.
На самом деле я использую Google Colab в основном для демонстрационных блокнотов, посвященных моделированию биопроцессов с использованием программного обеспечения общего назначения Modelica, скомпилированного в FMU. Таким образом, я пока не использую графический процессор и т. д. Но это может понадобиться в будущем. Поэтому я учту ваши предупреждения и проверю предоставленную вами ссылку. Спасибо!
Сообщество Jupyter предлагает сервис MyBinder.org для такого использования Jupyter. Это избавит вас от необходимости полагаться на крупную компанию, которая предлагает бесплатные вычислительные ресурсы, чтобы соблазнить вас для вашего бизнеса, и которая может в любой момент отправить их на кладбище Google, оставив вас в беде, поскольку вы стали полагаться на их систему, которая не Неправда Юпитер. Перейдите на страницу «Репозитории образцов связующих» здесь и щелкните первый значок «запустить связующее», который вы видите вверху в разделе «Среда Python с файлом требований.txt». ...
<продолжение> (Ссылка на репозиторий, который является источником настроек конфигурации и содержимого, находится справа от нее.) Вы получите временный сеанс без необходимости входа в систему с установленными пакетами, указанными requirements.txt, уже установленными, чтобы вы могли можно просто нажать «Запустить все», чтобы запустить index.ipynb. В этом примере сам блокнот не запускается напрямую, но вы можете это настроить. Пример: нажмите здесь (Репозиторий, являющийся источником...
<продолжение> это здесь ). Этот URL-адрес запуска просто указывает на службу MyBinder.org в репозитории и указывает, что запускать. Чуть не забыл, главное, вы можете легко использовать conda с MyBinder. Он является его частью, и вы можете использовать с ним environment.yml. Пример репозитория здесь. Именно на это ссылается содержимое страницы «Репозитории образцов связующих», на которую я ссылался выше, далее по странице под заголовком «Среда Conda с Environment.yml».
Вам следует повсюду использовать текущие лучшие практики в Jupyter, поскольку Google Colab добавил поддержку магических команд. Я знаю, что они сделали это, по крайней мере, для
%pip. В любом случае, попробуйте%pip listи%conda list. Они гарантируют, что команда выполняется в среде, где работает ядро ноутбука. Иногда!pipили!condaзапускается в экземпляре оболочки, который не соответствует среде, в которой работает активное ядро, поэтому в 2019 году были добавлены магические варианты, чтобы устранить проблему, которая может возникнуть при использовании восклицательного знака в сочетании сpipилиconda. Однако,