72 votes

Lier l'environnement Conda à Jupyter Notebook

J'essaie de créer un bon environnement pour faire des travaux scientifiques avec Python. Pour ce faire, j'ai installé Jupyter et miniconda.

Ensuite, je veux pouvoir disposer de différents environnements et les utiliser avec les carnets Jupyter. J'ai donc créé deux environnements personnalisés avec conda : py27 et py35.

> conda env list
# conda environments:
#
py27                     /Users/***/miniconda3/envs/py27
py35                     /Users/***/miniconda3/envs/py35
root                  *  /Users/***/miniconda3

Ensuite, sur mon ordinateur portable, j'ai deux noyaux python 2 y python 3 . Dans un carnet de notes, j'obtiens ce qui suit avec le noyau python3 :

> import sys
> print(sys.executable)
/Users/***/miniconda3/envs/py35/bin/python

Et ceci avec le noyau python2 :

> import sys
> print(sys.executable)
/usr/local/opt/python/bin/python2.7
  • Comment puis-je définir le sys.executable à l'environnement miniconda pour python2 ?
  • Comment lier un conda env avec un noyau d'ordinateur portable ?
  • Fait source activate py35 a un lien avec jupyter notebook ?

Je pense que j'ai vraiment raté quelque chose.

Merci à tous.

--- éditer

J'ai plusieurs bin jupyter :

> where jupyter
/usr/local/bin/jupyter
/usr/local/bin/jupyter
/Users/ThomasDehaeze/miniconda3/bin/jupyter

Je n'ai qu'un seul noyau ici /usr/local/share/jupyter/kernels/python2 . Mais dans Jupyter, j'ai deux noyaux, python2 y python3 . Où puis-je trouver l'autre ?


J'ai modifié kernel.json de /usr/local/share/jupyter/kernels/python2 :

{
 "display_name": "Python 2",
 "language": "python",
 "argv": [
  "/Users/***/miniconda3/envs/py27/bin/python2.7",
  "-m",
  "ipykernel",
  "-f",
  "{connection_file}"
 ]
}

Et puis :

import sys
print(sys.executable)
/usr/local/opt/python/bin/python2.7

Donc, rien n'a changé

1 votes

Cela pourrait aider, vous permet de choisir dans quel environnement exécuter votre noyau en ipython : groups.google.com/a/continuum.io/forum/m/#!topic/anaconda/

0 votes

Merci, je vais voir ça.

0 votes

Voir ma réponse ici : stackoverflow.com/questions/30492623/ - vous voudrez probablement utiliser l'indice avec l'option --name argument.

124voto

5agado Points 1467

Pour Anaconda, je vous propose une solution beaucoup plus simple et appropriée ; Jetez simplement un coup d'oeil à la paquet nb_conda_kernels .

Il vous permet de "gérer vos noyaux basés sur l'environnement Conda à l'intérieur du Jupyter Notebook".

Doit être inclus depuis la version 4.1.0 d'Anaconda, sinon utilisez simplement

conda install nb_conda

Vous devriez maintenant être en mesure de tout gérer directement à partir de l'interface du carnet de notes.

18 votes

Ce paquet fonctionne très bien ! Il suffit de l'installer pendant qu'un environnement est activé. Cet environnement apparaît immédiatement dans la sélection du nouveau menu de notebook. Vous devez donc faire cela pour chaque environnement que vous voulez ajouter à la liste.

1 votes

L'installation de nb_conda a l'inconvénient d'encombrer l'environnement conda. Existe-t-il une solution de contournement ?

1 votes

@Quickbeam2k1 vous devez seulement l'installer dans l'environnement à partir duquel vous exécutez le notebook Jupyter. Cela vous permet d'installer Jupyter dans l'environnement racine et d'exécuter des notebooks dans divers autres environnements sans avoir à installer Jupyter dans chacun d'eux.

33voto

Nihal Sangeeth Points 3403

En supposant que votre conda-env est nommé cenv c'est aussi simple que cela :

    $ conda activate cenv
    (cenv)$ conda install ipykernel
    (cenv)$ ipython kernel install --user --name=<any_name_for_kernel>
    (cenv($ conda deactivate

Si vous redémarrez votre jupyter notebook/lab, vous pourrez voir le nouveau noyau disponible.

PS : Si vous utilisez virtualenv, etc., les étapes ci-dessus sont valables.

10voto

lakiluk Points 676

Je ne suis pas sûr de ce qui a pu m'aider, mais pour moi, l'essentiel a été d'installer nb_conda_kernels dans l'environnement Root conda. Tenter de l'installer dans un environnement conda spécifique n'a pas permis à Jupyter Notebook d'utiliser un autre environnement conda que celui par défaut.

conda install -n root nb_conda_kernels

jupyter notebook

1 votes

Oui. J'ai dû faire ça aussi, même si c'est un peu contre-intuitif, puisque nb_conda est seulement supposé aller à l'intérieur des envs que vous voulez comme noyaux.

6voto

Thomas Dehaeze Points 308

J'ai trouvé la solution. La configuration des noyaux se trouvait ici ~/Library/Jupyter/kernels/ .

J'ai ensuite modifié le kernel.json et définir le bon chemin d'accès à python.

Maintenant ça marche.

1voto

Armughan Shahid Points 11

Cela a marché pour moi :

source activate {environment_name}
python -m ipykernel install --user --name={environment_name};

Si ipykernel n'est pas installé, utilisez cette commande :

conda install -c anaconda ipykernel

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X