Les environnements Conda n'apparaissent pas dans le carnet de notes de Jupyter

j'ai installé Anaconda (avec Python 2.7), et installé Tensorflow dans un environnement appelé tensorflow . Je peux importer Tensorflow avec succès dans cet environnement.

le problème est que le carnet Jupyter ne reconnaît pas le nouvel environnement que je viens de créer. Peu importe que je démarre le bloc-notes de Jupyter à partir du gui Navigator ou de la ligne de commande dans le tensorflow env, il n'y a qu'un seul noyau dans le menu appelé Python [Root] , et Tensorflow ne peut pas être importé. Bien sûr, j'ai cliqué sur cette option plusieurs fois, fichier sauvegardé, rouvert, mais cela n'a pas aidé.

étrangement, je peux voir les deux environnements quand j'ouvre l'onglet Conda sur la première page de Jupyter. Mais quand j'ouvre l'onglet Files , et que j'essaie de new un carnet, je finis toujours avec un seul noyau.

j'ai regardé cette question: relier L'environnement de Conda avec le carnet de notes de Jupyter Mais il n'y a pas de répertoire tel que ~/Library/Jupyter/kernels sur mon ordinateur! Ce répertoire Jupyter n'a qu'un sous-répertoire appelé runtime .

je suis vraiment confus. Les environnements Conda sont-ils censés devenir des noyaux automatiquement? (J'ai suivi https://ipython.readthedocs.io/en/stable/install/kernel_install.html pour configurer manuellement les noyaux, mais on lui a dit que ipykernel n'a pas été trouvé.)

133
demandé sur Thomas K 2016-09-21 00:50:44

7 réponses

Je ne pense pas que les autres réponses fonctionnent plus, car conda a arrêté de configurer automatiquement des environnements comme des noyaux jupyter. Vous devez ajouter manuellement les noyaux pour chaque environnement de la manière suivante:

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

comme documenté ici: http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments Voir aussi ce numéro .

Addendum: Vous devrait pouvoir installer le paquet nb_conda_kernels avec conda install nb_conda_kernels pour ajouter automatiquement tous les environnements, voir https://github.com/Anaconda-Platform/nb_conda_kernels

193
répondu Andreas Mueller 2018-04-04 14:47:24

la chose ennuyante est que dans votre tensorflow environnement, vous pouvez exécuter jupyter notebook sans installer jupyter dans cet environnement . Il suffit de lancer

(tensorflow) $ conda install jupyter

et l'environnement tensorflow devraient maintenant être visibles dans les Notebooks de Jupyter commencés dans l'un de vos environnements conda comme quelque chose comme Python [conda env:tensorflow] .

71
répondu Octavius 2016-09-21 17:58:17
Le commentaire de

@HarshaManjunath mentionne que lorsque vous utilisez Anaconda3 (ou Miniconda3) vous devez installer nb_conda dans l'environnement conda (en plus de jupyter ):

(py35) $ conda install nb_conda

notez que ce ne fonctionne pas actuellement avec les environnements Python 3.6 . L'info pour le paquet dit qu'il y a une version Python 3.6, ça ne marche pas encore.

$ 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*

pour utiliser python 3.6 dans un carnet Jupyter, vous pouvez exécuter jupyter depuis l'environnement Python 3.6. Vous ne serez tout simplement pas en mesure de voir ou de passer à D'autres environnements à partir de 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

notez que J'exécute Python 3.6.1 dans ce carnet: enter image description here

44
répondu Steven C. Howell 2017-07-07 14:25:56

il suffit d'exécuter conda install ipykernel dans votre nouvel Environnement, seulement alors vous obtiendrez un noyau avec cet env. Cela fonctionne même si vous avez différentes versions installées dans chaque envs et il n'installe pas Jupyter ordinateur portable à nouveau. Vous pouvez démarrer votre ordinateur portable à partir de n'importe quel env vous serez en mesure de voir les noyaux nouvellement ajoutés.

31
répondu rakesh 2017-04-25 18:01:33

j'ai dû exécuter toutes les commandes mentionnées dans les 3 premières réponses pour que cela fonctionne:

conda install jupyter
conda install nb_conda
conda install ipykernel
python -m ipykernel install --user --name mykernel
7
répondu coolscitist 2018-06-20 23:48:01

j'ai rencontré ce même problème où mon nouvel environnement conda, myenv , ne pouvait pas être sélectionné comme noyau ou nouveau bloc-notes. Et l'exécution jupter notebook de l'intérieur de l'env a donné le même résultat.

Ma solution, et ce que j'ai appris sur la façon Jupyter cahiers reconnaît conda-envs et amandes de palmiste:

installant jupyter et ipython à myenv avec conda:

conda install -n myenv ipython jupyter

après cela, en cours d'exécution jupter notebook en dehors de n'importe quel env répertorié myenv comme un noyau avec mes environnements précédents.

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

exécuter le bloc-notes une fois que j'ai activé l'environnement:

source activate myenv
jupyter notebook

cache tous mes autres noyaux d'environnement et ne montre que mes noyaux de langue:

python 2
python 3
R
5
répondu Shri Samson 2017-04-28 08:48:01

nous avons beaucoup lutté avec cette question, et voici ce qui fonctionne pour nous. Si vous utilisez le canal conda-forge , il est important de vous assurer que vous utilisez les paquets mis à jour de conda-forge , même dans votre environnement racine Miniconda .

donc installer Miniconda , puis faire:

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

et votre environnement personnalisé apparaîtra dans Jupyter comme un noyau, aussi longtemps que ipykernel était listé pour l'installation dans votre fichier custom_env.yml , comme dans cet exemple:

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

juste pour le prouver en travaillant avec un tas d'environnements personnalisés, voici une capture d'écran de Windows:

enter image description here

5
répondu Rich Signell 2018-01-19 20:57:07