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:
conda create --name tensorflowproblem python=2.7
pour créer un environnementsource activate tensorflowproblem
conda install --name tensorflowproblem jupyter
pour installer jupyterpip 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']
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.
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:
kernel > change kernel
pour un bloc-notes existant.Pour plus de détails, j'ai trouvé ce post utile!
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 :).
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.