jupyter portable noyau en cours d'exécution dans les différents env
Je me suis mis dans une sorte d'horrible virtualenv mess. De l'aide?!
Je gérer les environnements avec conda
. Jusqu'à récemment, je n'avais qu'une python2 jupyter portable noyau, mais j'ai décidé de me traîner coups de pied et de crier dans le 21e siècle et installé un python3 noyau, je ne sais plus comment je l'ai fait.
Mon principal (anaconda) python par défaut 2.7.
Si je suis là, joyeusement, essayez d'utiliser de belles soupe de l'intérieur de mon nouveau brillant python3 noyau, et je ne semble pas être en mesure de faire quelque chose pour obtenir à n'importe quel environnement il s'agit de trouver les paquets dans. Viz (de portable):
from bs4 import BeautifulSoup
-> ImportError: No module named 'bs4'
Ok, très bien, je vais l'installer à l'aide du shell de la magie. Droit? Droit?
! pip install bs4
--> Collecting bs4
Downloading bs4-0.0.1.tar.gz
Requirement already satisfied (use --upgrade to upgrade): beautifulsoup4 in /Users/[MY-USER]/anaconda/lib/python2.7/site-packages (from bs4)
[...]
Successfully built bs4
Installing collected packages: bs4
Successfully installed bs4-0.0.1
from bs4 import BeautifulSoup
-> ImportError: No module named 'bs4'
Oh non. Est-il penser que je suis dans un 2.7 env, même si je suis à court d'un python3 noyau? Ça va pas le faire.
! conda info --envs
--> # conda environments:
#
flaskenv /Users/[MY-USER]/anaconda/envs/flaskenv
mesa /Users/[MY-USER]/anaconda/envs/mesa
py35 /Users/[MY-USER]/anaconda/envs/py35
root * /Users/[MY-USER]/anaconda
Ok, je peux résoudre ce problème. Un de ceux est de 3,5 env.
! source activate py35
--> prepending /Users/[MY-USER]/anaconda/envs/py35/bin to PATH
! conda install beautifulsoup4
--> Fetching package metadata .......
Solving package specifications: ..........
# All requested packages already installed.
# packages in environment at /Users/[MY-USER]/anaconda:
#
beautifulsoup4 4.4.1 py27_0
concernant...
! pip install bs4
--> Requirement already satisfied (use --upgrade to upgrade): bs4 in /Users/[MY-USER]/anaconda/lib/python2.7/site-packages
plus concernant...
from bs4 import BeautifulSoup
-> ImportError: No module named 'bs4'
ARRGH!!! headdesk vais-je avoir à tuer le noyau afin de la résoudre (et de ré-exécuter un peu de travail)? Tue le noyau même d'aller travailler? Comment puis-je obtenir mon jupyter noyau de savoir dans quel environnement il est censé être en cours d'exécution en vertu de l'?
merci!
Vous devez vous connecter pour publier un commentaire.
C'est une partie délicate de ipython /Jupyter. L'ensemble des noyaux sont indépendants de ce que votre virtualenv est quand vous commencez à jupyter ordinateur Portable. Le truc, c'est la configuration de la ipykernel paquet dans l'environnement que vous souhaitez identifier de manière unique à jupyter. De docs sur plusieurs ipykernels,
Si vous souhaitez seulement avoir une seule Python 3 du noyau, de la conda de l'environnement, il suffit d'utiliser
python -m ipykernel install --user
et il sera réinitialisé à la valeur par défaut de python à la une dans le virtualenv.Et oui, vous aurez besoin de redémarrer le noyau et ré-exécutez les étapes préalables.
Voir Aussi À l'aide de Python 2.x et Python 3.x dans IPython Notebook
@tschundler la solution fonctionne parfaitement si votre environnement a déjà été créé.
Si vous souhaitez modifier le noyau par défaut lors de la création de votre environnement virtuel et d'éviter toute configuration manuelle, vous avez juste besoin d'ajouter
jupyter
à la fin de la conda commande:conda create --name ENVNAME python=PYTHONVERSION jupyter
Le noyau correct sera ensuite utilisé lorsque vous utilisez ipython ou jupyter portable.
Il est aussi un moyen facile ici
Vous devriez maintenant être en mesure de voir votre noyau dans le IPython notebook menu: Kernel -> Changement de noyau et d'être capable de passer à l' (vous pouvez avoir besoin de rafraîchir la page avant qu'elle apparaît dans la liste). IPython souviendrai de noyau à l'utilisation de ce bloc-notes à partir de là.
Cela a fonctionné pour moi. source
Dans mon cas, en quelque sorte jupyter n'était pas en mesure de "prendre" l'environnement virtuel du python. J'ai donc dû modifier
~/.local/share/jupyter/kernels/{my_env_name}/kernel.json
et ajouter le chemin vers l'interpréteur
dans le
argv
clé.et aller au répertoire ci-dessus
ouvert du noyau.json