Запуск нескольких версий Python (2.x. 3.y, 3.z) на ноутбуке Jupyter через несколько ядер - PullRequest
1 голос
/ 21 июня 2019

Извиняюсь из первых рук, если я сделал какую-то глупую ошибку в поднятой ниже проблеме. Я застрял на этом довольно долгое время, пытаясь успешно установить несколько версий Python (через отдельные виртуальные среды) и запустить Jupyter notebook со всеми тремя версиями в Change kernel switch.

AIM:

Установите Anaconda с Python 3.5.6 по умолчанию и создайте две виртуальные среды с версиями Python 2.7.13 и Python 3.7.3 и сможете переключаться между этими тремя версиями Python на ноутбуке Jupyter на Windows.

Процесс последовал: То, что я сделал (и закончилось беспорядком):

Сначала я успешно установил Anaconda3 с Python 3.5.6 по умолчанию (установлен в C:\ProgramData\Anaconda3) и установил переменные PATH. Jupyter Notebook был запущен с ядром ipython, запущенным из «базы» (или root) из

(base)  jupyter kernelspec list
Available kernels:
python_3.5.6          C:\Users\username\AppData\Roaming\jupyter\kernels\python_3.5.6
Файл

и kernel.json также был сопоставлен с правильной версией Python.

.

Затем я создал свою первую виртуальную среду (Python_2.7.13_ENV):

(base)  conda create --p C:\ProgramData\Anaconda3\envs\Python_2.7.13_ENV python=2.7.13

и установленный на нем jupyter

(base)  activate Python_2.7.13_ENV
(Python_2.7.13_ENV)  conda install notebook ipykernel
(Python_2.7.13_ENV)  python -m ipykernel install --p C:\Users\username\AppData\Roaming\jupyter\kernels\ --name Python_2.7.13_ENV --display-name "python_2.7.13"

Я использовал префиксную нотацию, так как синтаксис установки по умолчанию устанавливал ее для пользователя root, и я хотел, чтобы она устанавливалась только для конкретного пользователя. И это сработало как шарм. Обновленная спецификация ядра Jupyter гласит:

(base)  jupyter kernelspec list
Available kernels:
python_3.5.6        C:\Users\username\AppData\Roaming\jupyter\kernels\python_3.5.6
python_2.7.13       C:\Users\username\AppData\Roaming\jupyter\kernels\python_2.7.13
Файл

и kernel.json также был сопоставлен с правильной версией Python ("C:\\ProgramData\\Anaconda3\\envs\\Python_2.7.13\\python.exe")

Это тоже работало нормально. Я мог бы открыть файл в jupyter и успешно переключаться между двумя ядрами.

.

Чем я проделал те же шаги для создания моей второй виртуальной среды (Python_3.7.3_ENV):

Теперь обновленная спецификация ядра гласит:

(base)  jupyter kernelspec list
Available kernels:
python_3.5.6     C:\Users\username\AppData\Roaming\jupyter\kernels\python_3.5.6
python_2.7.13    C:\Users\username\AppData\Roaming\jupyter\kernels\python_2.7.13
python_3.7.3     C:\Users\username\AppData\Roaming\jupyter\kernels\python_3.7.3

и kernel.json также были сопоставлены с правильной версией Python.

Проблема:

  • Оба виртуальных envs были созданы успешно.
  • Теперь, когда я запускаю ноутбук Jupyter и пытаюсь переключиться на Python 2.7.13 kernel, он работает нормально, но показывает ImportError: DLL load failed (due to some import issue in zmq) при переключении на Python_3.7.3 kernel.
  • Однако, когда я сначала активирую виртуальную среду Python_3.7.3_ENV, а затем загружаю блокнот jupyter, я могу переключаться между всеми тремя версиями Python.

Может кто-нибудь предложить решение о том, как переключаться между всеми тремя версиями без предварительной активации виртуального env, если это возможно, поскольку я могу сделать это с версиями Py 2.7 и Py 3.5.

PS. По умолчанию при щелчке правой кнопкой мыши на файле ipynb я установил значение по умолчанию «open with» на jupyter-notebook.exe.

1 Ответ

0 голосов
/ 16 июля 2019

После здесь и там единственное, что может сделать эту работу, - активировать эту виртуальную среду.

Следуя вышеуказанным шагам, я установил Python 2.7.13, 3.5.6 и 3.7.3 версии. Мой Python по умолчанию - Python 3.5.6, в то время как две другие версии установлены в двух виртуальных средах - Python_2.7.13_ENV и Python_3.7.3_ENV соответственно.

Как их использовать?

  • Для Python 2.7 и 3.5 , просто используйте Jupyter notebooks как обычно. Поскольку Python по умолчанию установлен на Python 3.5.6, нет проблем при переключении между двумя версиями с использованием опции Change Kernel на панели инструментов Jupyter Notebook.

  • Для Python 3.7 сначала нужно активировать Python_3.7.3_ENV virtual environemnt, а затем мы можем успешно переключаться между всеми тремя версиями, используя опцию Change Kernel в Jupyter Notebook.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...