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