2016-09-20 1 views
69

Я установил Anaconda (с Python 2.7) и установил Tensorflow в среде с именем tensorflow. Я могу импортировать Tensorflow успешно в этой среде.Окружающие среды Conda не отображаются в Jupyter Notebook

Проблема в том, что Jupyter Notebook не распознает новую среду, которую я только что создал. Независимо от того, что я запускаю Jupyter Notebook из GUI Navigator или из командной строки в пределахtensorflow env, в меню есть только одно ядро: Python [Root], а Tensorflow нельзя импортировать. Конечно, я несколько раз нажимал на эту опцию, сохранял файл, снова открывал, но это не помогло.

Странно, я вижу две среды, когда открываю вкладку Conda на первой странице Jupyter. Но когда я открываю вкладку Files и пытаюсь сделать new записной книжкой, я все равно получаю только одно ядро.

Я посмотрел на этот вопрос: Link Conda environment with Jupyter Notebook Но нет такой каталог, ~/Library/Jupyter/kernels на моем компьютере! Этот каталог Jupyter имеет только один подкаталог: runtime.

Я действительно смущен. Предполагается, что среды Конда станут ядрами автоматически? (Я последовал https://ipython.readthedocs.io/en/stable/install/kernel_install.html вручную настроить ядра, но было сказано, что ipykernel не был найден.)

+5

Запустить 'conda install ipykernel' в этой среде. –

ответ

55

Раздражает то, что в вашей tensorflow среде, вы можете запустить jupyter notebookбез установки jupyter в этой среде. Просто запустите

(tensorflow) $ conda install jupyter 

и tensorflow среды теперь должна быть видна в Jupyter Notebooks начался в любом из ваших conda среды, как что-то вроде Python [conda env:tensorflow].

+6

У меня была та же проблема, что и у Томаса К., и решение, разделенное Октавием, также решило мою проблему. Однако есть один улов, если у вас есть версия Anaconda Python 3, тогда вы сможете увидеть только свою текущую активную среду, и у нее должен быть собственный Jupyter. Но если вы установите версию Anaconda Python 2, она сможет обрабатывать все среды. – rkmalaiya

+5

вы можете сделать «conda install nb_conda», а также в версии anaconda для Python2, чтобы управлять своими envs от самого Jupyter. – rkmalaiya

+6

@ rkmalaiya правильный. Если вы используете Miniconda3 или Anaconda3, выполните '' 'conda install nb_conda''' в одной из ваших источников окружения conda (в которой установлен jupyter-ноутбук). Затем вы можете переключать ядра/conda envs в браузере ноутбука jupyter. –

20

@ комментарий HarshaManjunath упоминает, что при использовании Anaconda3 (или Miniconda3) вам необходимо установить nb_conda в окружающую среду Конда (в дополнение к jupyter):

(py35) $ conda install nb_conda 

Обратите внимание, что это does not currently work with python 3.6 environments. Информация для пакета говорит, что есть версия python 3.6, она просто не работает.

$ conda info nb_conda 
... 
nb_conda 2.0.0 py36_0 
--------------------- 
file name : nb_conda-2.0.0-py36_0.tar.bz2 
name  : nb_conda 
version  : 2.0.0 
build string: py36_0 
build number: 0 
channel  : defaults 
size  : 30 KB 
arch  : x86_64 
date  : 2016-12-20 
license  : BSD 
md5   : 24d433439f2fdd1d27e49c27688c2589 
noarch  : None 
platform : linux 
url   : https://repo.continuum.io/pkgs/free/linux-64/nb_conda-2.0.0-py36_0.tar.bz2 
dependencies: 
    _nb_ext_conf 
    nb_conda_kernels 
    notebook >=4.2 
    python 3.6* 

Для использования питона 3.6 в ноутбуке Jupyter, вы можете запустить jupyter внутри питона 3.6 среды. Вы просто не сможете увидеть или переключиться в другие среды из Jupyter.

$ conda create -n py36_test -y python=3.6 jupyter 
$ source activate py36_test 
(py36_test) $ which jupyter 
/home/schowell/anaconda3/envs/py36_test/bin/jupyter 
(py36_test) $ jupyter notebook 

Обратите внимание, что я бегу на Python 3.6.1 в этом ноутбуке: enter image description here

+0

Привет, Извините, открыв эту тему еще раз.Однако я попробовал все, что советовал здесь, и до сих пор не вижу тензорного потока в jupyter. У меня есть jupyter, установленный в endorflow env. У меня там установлен python 3.6.1. Я попытался установить conda nb_conda, но он говорит о конфликте с py3.6. Так что не удалось установить все остальное, что я пробовал, и, похоже, не работает. Любой совет? – Baktaawar

+0

ОК. Я снова проверил. Моя проблема в том, что мой jupyter при открытии ядра Python 3 не может импортировать какие-либо модули. Я не уверен, почему это так. А также он не показывает другие env слишком – Baktaawar

+0

@Baktaawar Я заметил ту же ошибку. Я хотел сформулировать этот ответ, но столкнулся с этим и не успел его решить. Я думаю, что это ошибка, о которой следует сообщать как о проблеме git. –

17

Просто запустите conda install ipykernel в новой среде, только тогда вы получите ядро ​​с этой окр. Это работает, даже если у вас есть разные версии, установленные в каждом envs, и он не устанавливает снова jupyter notebook. Вы можете запустить свой ноутбук с любого env, вы сможете увидеть новые добавленные ядра.

+3

Это лучший ответ по состоянию на январь 2018 года. Jupyter должен автоматически обнаружить ваше ядро ​​при запуске, если вы просто 'conda install ipykernel' внутри вашей среды conda. В худшем случае вы можете использовать 'python -m ipykernel install -user -name mykernel' для ручного создания ядра, но вы не захотите этого делать, если он уже автоматически обнаружен или он будет отображаться дважды в список ядра. – colllin

+0

это также установит Юпитер и все его зависимости. Он работает, но почему-то это не оптимально. – Quickbeam2k1

+0

В этом ответе должен быть указан правильный ответ. <справочная информация для будущих людей> – imsrgadich

4

Я столкнулся с этой проблемой, когда моя новая среда конда, myenv, не может быть выбрана как ядро ​​или новый ноутбук.И запуск jupter notebook изнутри env дал тот же результат.

Мое решение, и то, что я узнал о том, как Jupyter ноутбуки распознает Конда-envs и ядра:

Установка jupyter и IPython к myenv с Конда:

conda install -n myenv ipython jupyter 

После этого, работает jupter notebook вне каких-либо окр перечислены myenv как ядро ​​вместе с моими предыдущими средами.

Python [conda env:old] 
Python [conda env:myenv] 

Запуск ноутбука, когда я активировал среды:

source activate myenv 
jupyter notebook 

скрывает все мои другие среды-ядро и только показывает мой язык ядро:

python 2 
python 3 
R 
62

Я не думаю, другие ответы уже работают, поскольку конда остановила автоматическую настройку сред как ядра jupyter. Вам нужно вручную добавить ядра для каждой среды следующим образом:

source activate myenv 
python -m ipykernel install --user --name myenv --display-name "Python (myenv)" 

Как указано здесь: http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments Также см this issue.

+6

Возможно ли как-то флаг в самом современном решении на сегодняшний день? –

+1

Это сработало для меня Декабрь 2017 –

+1

Только это сработало для меня! conda install nb_conda - не помогло. Благодаря! – Deil

3

У нас много борьбы с этой проблемой, и вот что работает для нас. Если вы используете conda-forge channel, важно убедиться, что вы используете обновленные пакеты от conda-forge, даже в корневой среде Miniconda.

Так установить Miniconda, а затем сделать:

conda config --add channels conda-forge --force 
conda update --all -y 
conda install nb_conda_kernels -y 
conda env create -f custom_env.yml -q --force 
jupyter notebook 

и пользовательская среда будет отображаться в Jupyter как доступное ядро, пока ipykernel был перечислен для установки в файле custom_env.yml, как в этом примере:

name: bqplot 
channels: 
- conda-forge 
- defaults 
dependencies: 
- python>=3.6 
- bqplot 
- ipykernel 

Просто чтобы доказать, что работать с кучей пользовательских сред, вот захват экрана от Windows:

enter image description here