web-dev-qa-db-fra.com

Impossible d'importer un module à partir du cahier Python dans Jupyter

J'ai commencé à utiliser Anaconda dans un environnement et y ai installé un module. Je le sais, car je peux exécuter python puis import tensorflow. Cela fonctionne aussi quand à travers ipython. Le problème est que je ne peux pas charger le module à partir d'un ordinateur portable que je commence à utiliser soit ipython notebook ou jupyter (même si j'exécute depuis un environnement actif).

Je suppose que cela a trait à la configuration de ipython mais je ne sais pas comment déboguer et résoudre le problème. Une idée?

Edit: Voici les étapes que j'ai suivies:

  1. conda create --name tensorflowproblem python=2.7 pour créer un environnement
  2. source activate tensorflowproblem
  3. conda install --name tensorflowproblem jupyter pour installer jupyter
  4. pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl à installer tensorflow

Les emplacements de pip et jupyter:

$ which -a pip
/Users/dror/anaconda/envs/tensorflowproblem/bin/pip
$ which -a jupyter
/Users/dror/anaconda/envs/tensorflowproblem/bin/jupyter

Notez que le répertoire ~/anaconda/envs/tensorflowproblem/lib/python2.7/site-packages/tensorflow existe.

De plus, ni python -c "import tensorflow" ni ipython -c "import tensorflow" ne génèrent aucune erreur.

Comme demandé, également la sortie de

$ conda list -n tensorflowproblem
# packages in environment at /Users/dror/anaconda/envs/tensorflowproblem:
#
appnope                   0.1.0                    py27_0
backports-abc             0.4                       <pip>
backports.ssl-match-hostname 3.4.0.2                   <pip>
backports_abc             0.4                      py27_0
decorator                 4.0.4                    py27_0
freetype                  2.5.5                         0
ipykernel                 4.1.1                    py27_0
ipython                   4.0.0                    py27_1
ipython-genutils          0.1.0                     <pip>
ipython_genutils          0.1.0                    py27_0
ipywidgets                4.1.0                    py27_0
jinja2                    2.8                      py27_0
jsonschema                2.4.0                    py27_0
jupyter                   1.0.0                    py27_0
jupyter-client            4.1.1                     <pip>
jupyter-console           4.0.3                     <pip>
jupyter-core              4.0.6                     <pip>
jupyter_client            4.1.1                    py27_0
jupyter_console           4.0.3                    py27_0
jupyter_core              4.0.6                    py27_0
libpng                    1.6.17                        0
markupsafe                0.23                     py27_0
mistune                   0.7.1                    py27_0
nbconvert                 4.0.0                    py27_0
nbformat                  4.0.1                    py27_0
notebook                  4.0.6                    py27_0
numpy                     1.10.1                    <pip>
openssl                   1.0.2d                        0
path.py                   8.1.2                    py27_1
pexpect                   3.3                      py27_0
pickleshare               0.5                      py27_0
pip                       7.1.2                    py27_0
ptyprocess                0.5                      py27_0
pygments                  2.0.2                    py27_0
pyqt                      4.11.4                   py27_0
python                    2.7.10                        2
python.app                1.2                      py27_4
pyzmq                     14.7.0                   py27_1
qt                        4.8.7                         1
qtconsole                 4.1.0                    py27_0
readline                  6.2                           2
setuptools                18.5                     py27_0
simplegeneric             0.8.1                    py27_0
singledispatch            3.4.0.3                  py27_0
sip                       4.16.9                   py27_0
six                       1.10.0                   py27_0
sqlite                    3.8.4.1                       1
ssl_match_hostname        3.4.0.2                  py27_0
tensorflow                0.5.0                     <pip>
terminado                 0.5                      py27_1
tk                        8.5.18                        0
tornado                   4.3                      py27_0
traitlets                 4.0.0                    py27_0
wheel                     0.26.0                   py27_1
zeromq                    4.1.3                         0
zlib                      1.2.8                         0

De plus, comme demandé, le résultat de sys.path est le suivant:

['',
 '/Users/user/anaconda/envs/py2/lib/python27.Zip',
 '/Users/user/anaconda/envs/py2/lib/python2.7',
 '/Users/user/anaconda/envs/py2/lib/python2.7/plat-darwin',
 '/Users/user/anaconda/envs/py2/lib/python2.7/plat-mac',
 '/Users/user/anaconda/envs/py2/lib/python2.7/plat-mac/lib-scriptpackages',
 '/Users/user/anaconda/envs/py2/lib/python2.7/lib-tk',
 '/Users/user/anaconda/envs/py2/lib/python2.7/lib-old',
 '/Users/user/anaconda/envs/py2/lib/python2.7/lib-dynload',
 '/Users/user/anaconda/envs/py2/lib/python2.7/site-packages',
 '/Users/user/anaconda/envs/py2/lib/python2.7/site-packages/Sphinx-1.3.1-py2.7.Egg',
 '/Users/user/anaconda/envs/py2/lib/python2.7/site-packages/aeosa',
 '/Users/user/anaconda/envs/py2/lib/python2.7/site-packages/setuptools-17.1.1-py2.7.Egg',
 '/Users/user/anaconda/envs/py2/lib/python2.7/site-packages/IPython/extensions',
 '/Users/user/.ipython']
11
Dror

Essayez ce qui suit:

source activate tensorflowproblem
conda install notebook ipykernel
ipython kernel install --user

Il semble que votre environnement tensorflowproblem ne possède pas de noyau ipython, mais un autre environnement (probablement votre racine) en a. Lorsque vous lancez Jupyter, il vous place dans l’environnement avec le noyau, mais sans le paquet tensorflow. Si vous n'avez pas encore exécuté les lignes ci-dessus, vous pouvez tester cette théorie en ouvrant un cahier et en exécutant:

import sys
sys.path

Si les premiers chemins n'indiquent pas «envs/tensorflowproblem», cela expliquerait le problème. 

16
Alnilam

Pour jupyter notebook, le package python suivant est utile pour gérer le type d’environnement noyau/anaconda python sur lequel exécuter un carnet:

pip install environment_kernels

Exécutez cette installation dans votre environnement par défaut ou dans un environnement spécifique. Après avoir démarré jupyter notebook, vous devriez voir les options pour vos environnements anaconda à deux endroits: 

  1. options pour démarrer un nouveau cahier 
  2. dans la liste déroulante kernel > change kernel pour un bloc-notes existant.

Pour plus de détails, j'ai trouvé ce post utile!

4
chinnychinchin

J'ai eu un problème similaire: chaque paquet que j'installe sur un terminal Linux (avec conda ou pip) fonctionne correctement (je peux importer) sur la console python comme suit (par exemple):

>>> import tensorflow as tf
>>>

Donc, sur la console PYTHON3, je n’ai pas de problème: mais le cahier Jupyter donnerait une erreur avec le terrible massage 

"No module named tensorflow" 

J'ai suivi l'une des réponses ci-dessus et fait ce qui suit sur le terminal linux:

$cd usr/local/bin 
$ls
f2py  pip  pip2  pip2.7 

Maintenant, "pip install xxx" me dirait que le paquet existe déjà et qu’il n’ya pas de changement. Mais depuis que j'utilise python3 sur le cahier Jupyter, j'ai essayé 

$pip3 install tensorflow

sur le terminal Linux et maintenant dans mon cahier jupyter, je peux le faire

import tensorflow as tf

Plus de message "Aucun module nommé tensorflow". Utiliser le bloc-notes Jupyter est une bonne chose, mais importer des paquets était un cauchemar. Ce n’est plus dû aux étapes ci-dessus, je pensais partager cela, peut-être que je sauve d’autres personnes d’une agonie semblable :). 

1
J.Michael

Très probablement, votre ordinateur portable n'a pas chargé le bon noyau (environnement). Le nom de l'environnement est affiché dans le coin supérieur droit. Voir le cercle rouge dans l'image ci-dessous. Si ce n'est pas le cas, cliquez sur Kernel-> Change Kernel et sélectionnez le noyau approprié.

 enter image description here

1
GunnerFan

D'après mon expérience du module xlrd fonctionnant dans la console et non dans Jupyter, vous pouvez essayer d'aller dans le dossier Python de votre système /usr/local/bin/, puis de rechercher votre version python. Ensuite, utilisez le fichier pipXX pour installer le module dont vous avez besoin.

0
Nguyen Pham