Как выбрать свою среду conda в Jupyter Notebook - PullRequest
0 голосов
/ 21 октября 2018

Я установил Anaconda 5.3 с Python 3.7 (корневая среда).
После этого я создал новую среду (py36) с использованием Python 3.6

Я активировал новую среду с помощью activate py36
conda env list показывает, что среда активна.

Но когда я запускаю Jupyter Notebook (из приглашения Anaconda с jupyter notebook), он, похоже, использует root environemt, а не активированную среду.

Как использовать Jupyter Notebook сновая среда создания (py36)?

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Как уже упоминалось @ Ista , документация предоставляет простое решение с использованием расширений ноутбука.

conda install nb_conda

После установки у вас в Jupyter Notebook есть опция «Сменить ядро» в меню «Kernel» в вашем Jupyter Notebook.

0 голосов
/ 21 октября 2018

Мне удалось найти решение для этой проблемы.Дело в том, что IPython не virtualenv-осознает , поэтому обходной путь (который мне показался наиболее удобным) состоит в том, чтобы указать собственные ядра IPython, чтобы избежать установки по одной Jupyter Notebook для каждого virtualenv (или anaconda).среды, в вашем случае).

Jupyter опирается на некоторые "ядра" (определения, где найти двоичный файл python), которые хранятся где-то в вашей ОС.Эти файлы выглядят примерно так:

{
 "display_name": "NameOfTheKernel", 
 "language": "python", 
 "argv": [
  "/usr/bin/python", 
  "-m", 
  "ipykernel_launcher", 
  "-f", 
  "{connection_file}"
 ]

Где /usr/bin/python - путь к исполняемому файлу Python.Однако, поскольку эти ядра определены где-то на вашем компьютере Jupyter, они не обновляются, когда вы устанавливаете некоторые другие среды (как в случае с anaconda или virtualenv).Я обнаружил, что самый простой способ - определить собственное ядро ​​для каждой среды, которую вы используете.Кроме того, это исключает необходимость активировать среду каждый раз, когда вы хотите ее использовать, поскольку она загружается напрямую.

Идея состоит в том, чтобы определить собственное ядро, чтобы Jupyter мог «видеть» среду,Вы создали с анакондой.Для этого выполните в bash следующую строку:

ipython kernel install --user --name=NameOfTheKernel

«NameOfTheKernel» на самом деле не имеет большого значения.Если у вас нет пакета ipython, установите его с помощью pip, anaconda, через sudo apt install или любым другим.

Что будет делать эта строка, так это определить собственное ядро, которое будет обнаружено jupyter.В целях иллюстрации, в Ubuntu это будет храниться в папке /home/USERNAME/.local/share/jupyter со следующей структурой данных:

/home/USERNAME/.local/share/jupyter/kernels/
└── nameofthekernel
    ├── kernel.json
    ├── logo-32x32.png
    └── logo-64x64.png

После того, как вы установили ядро, вы должны:

1)Знайте, где ваша среда была установлена ​​Anaconda.Самый простой способ сделать это - активировать свою среду в anaconda, а затем написать «какой питон» в терминале.Это покажет полный путь к двоичному файлу.

2) Запишите этот путь в только что созданном ядре jupyter.Например, используя pluma:

pluma /home/USERNAME/.local/share/jupyter/kernels/nameofthekernel/kernel.json

Затем вы подставляете путь двоичного файла python, который вы установили с помощью anaconda, где /usr/bin/python.

После этого, если Jupyter работал, перезапустите его.Таким образом, в следующий раз, когда вы откроете Jupyter, вы можете изменить ядро ​​(в записных книжках, одну из вкладок в верхней части), и вы будете использовать свою среду и все, что установлено вместе с этой средой.

[TL; DR] Я сделал это с pip , но шаги для анаконды будут более или менее одинаковыми.Шаги:

#CREATE THE IPYTHON KERNELS
ipython kernel install --user --name=NameOfKernel
#IF PYTHON2 - MODIFY THE KERNELS TO USE THE ANACONDA BINARIES
sed -i -e "s|/usr/bin/python3|/home/${USER}/anaconda/bin/python27|g" /home/$USER/.local/share/jupyter/kernels/nameofkernel/kernel.json
#IF PYTHON3 - MODIFY THE KERNELS TO USE THE ANACONDA BINARIES
sed -i -e "s|/usr/bin/python3|/home/${USER}/anaconda/bin/python36|g" /home/$USER/.local/share/jupyter/kernels/nameofkernel/kernel.json

Или, если вы работаете со средами:

#CREATE THE IPYTHON KERNELS
ipython kernel install --user --name=NameOfKernel
#IF PYTHON2 - MODIFY THE KERNELS TO USE THE ANACONDA BINARIES
sed -i -e "s|/usr/bin/python3|/home/${USER}/anaconda/envs/nameofenvironment/python27|g" /home/$USER/.local/share/jupyter/kernels/nameofkernel/kernel.json
#IF PYTHON3 - MODIFY THE KERNELS TO USE THE ANACONDA BINARIES
sed -i -e "s|/usr/bin/python3|/home/${USER}/anaconda/envs/nameofenvironment/python36|g" /home/$USER/.local/share/jupyter/kernels/nameofkernel/kernel.json

ВНИМАНИЕ : Я НЕ УСТАНАВЛИВАЛ КОНДА ДЛЯ ИСПЫТАНИЯ РЕШЕНИЯ, ТАКПУТИ, ВЕДУЩИЕ К БИНАРИЯМ ФАКТИЧЕСКИХ ПИТОНОВ, МОГУТ ИЗМЕНЯТЬСЯ.Однако процедура та же самая.

...