Фактическая версия Python в среде conda при работе в Google Colab?

Я запускаю блокноты в 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?

Вам следует повсюду использовать текущие лучшие практики в Jupyter, поскольку Google Colab добавил поддержку магических команд. Я знаю, что они сделали это, по крайней мере, для %pip. В любом случае, попробуйте %pip list и %conda list. Они гарантируют, что команда выполняется в среде, где работает ядро ​​ноутбука. Иногда !pip или !conda запускается в экземпляре оболочки, который не соответствует среде, в которой работает активное ядро, поэтому в 2019 году были добавлены магические варианты, чтобы устранить проблему, которая может возникнуть при использовании восклицательного знака в сочетании с pip или conda. Однако,

Wayne 23.05.2024 17:52

<продолжение> Google Colab — совсем другое дело (несмотря на то, что многие люди говорят так, как будто они используют блокноты Jupyter), и поэтому на самом деле это не было проблемой, поскольку они гарантировали, что восклицательный знак работает с pip. Тем не менее, я знаю, что они, наконец, добавили поддержку %pip, чтобы сделать это последовательным, и я подозреваю, что они добавили %conda и в то же время, возможно?? Опять же, это совсем другой зверь, чем Jupyter, у которого эти волшебные версии есть с 2019 года.

Wayne 23.05.2024 17:55

Спасибо. Протестирован список %pip и выдает ожидаемую информацию, но не отображает версию Python в записной книжке. Его просто нет. Что касается списка %conda, я получаю ValueError, что «...ядро Python не является средой Conda...». Не знаю, как это интерпретировать. В ноутбуке используется Python и работает нормально.

janpeter 23.05.2024 18:06

Мой подход/желание — использовать идентичные блокноты и общий сценарий установки Python, который работает как в Windows, так и в Linux, а также в локальном блокноте Jupyter и в удаленном блокноте Colab. На самом деле пока все работает вполне нормально. Но мою функцию setup_info(), которая перечисляет версии ключевых пакетов и т. д., необходимо исправить, чтобы она сообщала версию Python для ноутбука. Кажется, платформа.python_version() должна работать везде...

janpeter 23.05.2024 18:10

Для использования сервиса MyBinder.org (см. мои комментарии под постом Джонни) параллельно с вашими локальными материалами вы можете создать каталог binder, в который поместите файлы конфигурации, которые MyBinder будет использовать преимущественно. Другими словами, если существует каталог binder или .binder, MyBinder будет использовать файлы конфигурации в нем и игнорировать файлы в корне. Таким образом, те, что находятся в корне, могут по-прежнему использоваться в других ситуациях, например, при локальном использовании.

Wayne 23.05.2024 18:55

Да, в блокнотах Colab есть краткий список команд для настройки Colab и выделения нужного места на Github. Затем выполняется общая настройка: один и тот же сценарий как для Colab, так и для локальной установки, и оба обеспечивают среду conda. Конечно, мне понравится идея переплета!

janpeter 23.05.2024 19:01
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
6
92
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, ноутбуки запускаются с использованием ядер 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 для ноутбука. Но вы имеете в виду, что это не так, верно? Можете ли вы рассказать здесь немного подробнее?

janpeter 23.05.2024 17:50

Хорошо, кажется, я пропустил часть о Google Colab. В любом случае, вы все правильно поняли, в вашем случае версия Python в ноутбуке — 3.10 и отличается от Python, который вы установили в качестве основного системного Python. К сожалению, изменить версию Python в блокнотах Colab очень сложно. Например, прочитайте эту ветку, где разработчик Colab отвечает, что они не поддерживают изменение версий Python: github.com/googlecolab/colabtools/issues/4212. Однако есть несколько очень сложных обходных путей, которые вы можете использовать в Google и попытаться им следовать...

Johnny Cheesecutter 23.05.2024 18:08

Лично я не буду рекомендовать какой-либо из этих обходных путей по следующей причине. Скорее всего, вы используете Google Colab для доступа к графическим процессорам. Google Colab по умолчанию предоставляет вам лучшие конфигурации для своих экземпляров графических процессоров. Изменение версии Python может вызвать ошибки в cuda_libs, затем в версиях тензорного потока, а затем еще в чем-то. Поэтому я советую использовать его как есть и понизить свой код до версии Python, поддерживаемой в Colab.

Johnny Cheesecutter 23.05.2024 18:12

На самом деле я использую Google Colab в основном для демонстрационных блокнотов, посвященных моделированию биопроцессов с использованием программного обеспечения общего назначения Modelica, скомпилированного в FMU. Таким образом, я пока не использую графический процессор и т. д. Но это может понадобиться в будущем. Поэтому я учту ваши предупреждения и проверю предоставленную вами ссылку. Спасибо!

janpeter 23.05.2024 18:26

Сообщество Jupyter предлагает сервис MyBinder.org для такого использования Jupyter. Это избавит вас от необходимости полагаться на крупную компанию, которая предлагает бесплатные вычислительные ресурсы, чтобы соблазнить вас для вашего бизнеса, и которая может в любой момент отправить их на кладбище Google, оставив вас в беде, поскольку вы стали полагаться на их систему, которая не Неправда Юпитер. Перейдите на страницу «Репозитории образцов связующих» здесь и щелкните первый значок «запустить связующее», который вы видите вверху в разделе «Среда Python с файлом требований.txt». ...

Wayne 23.05.2024 18:41

<продолжение> (Ссылка на репозиторий, который является источником настроек конфигурации и содержимого, находится справа от нее.) Вы получите временный сеанс без необходимости входа в систему с установленными пакетами, указанными requirements.txt, уже установленными, чтобы вы могли можно просто нажать «Запустить все», чтобы запустить index.ipynb. В этом примере сам блокнот не запускается напрямую, но вы можете это настроить. Пример: нажмите здесь (Репозиторий, являющийся источником...

Wayne 23.05.2024 18:44

<продолжение> это здесь ). Этот URL-адрес запуска просто указывает на службу MyBinder.org в репозитории и указывает, что запускать. Чуть не забыл, главное, вы можете легко использовать conda с MyBinder. Он является его частью, и вы можете использовать с ним environment.yml. Пример репозитория здесь. Именно на это ссылается содержимое страницы «Репозитории образцов связующих», на которую я ссылался выше, далее по странице под заголовком «Среда Conda с Environment.yml».

Wayne 23.05.2024 18:44

Другие вопросы по теме