No se puede importar un módulo del cuaderno Python en Jupyter

Tengo un entorno en el que comencé a usar Anaconda y instalé con éxito un módulo en él. Lo sé, porque puedo ejecutar python y luego import tensorflow . Esto también funciona cuando a través de ipython . El problema es que no puedo cargar el módulo desde una notebook que empiezo a usar ipython notebook o jupyter (aunque ejecuto desde un entorno activo).

Sospecho que se relaciona con la configuración de ipython pero no sé cómo depurar y resolver el problema. ¿Alguna idea?

Editar: Aquí están los pasos que tomé:

  1. conda create --name tensorflowproblem python=2.7 para crear un entorno
  2. source activate tensorflowproblem
  3. conda install --name tensorflowproblem jupyter para instalar jupyter
  4. pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl para instalar tensorflow

Las ubicaciones de pip y jupyter :

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

Tenga en cuenta que el directorio ~/anaconda/envs/tensorflowproblem/lib/python2.7/site-packages/tensorflow existe.

Además, ni python -c "import tensorflow" ni ipython -c "import tensorflow" producen ningún tipo de error.

Según lo solicitado, también la salida de

 $ conda list -n tensorflowproblem # packages in environment at /Users/dror/anaconda/envs/tensorflowproblem: # appnope 0.1.0 py27_0 backports-abc 0.4  backports.ssl-match-hostname 3.4.0.2  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  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  jupyter-console 4.0.3  jupyter-core 4.0.6  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  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  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 

Además, según lo solicitado, la salida de sys.path es:

 ['', '/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'] 

Intente lo siguiente:

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

Parece que su env de tensorflowproblem no tiene un kernel de ipython, pero tiene otro env (probablemente su raíz). Cuando está lanzando Jupyter, lo está poniendo en la env con el kernel pero sin el paquete tensorflow. Si aún no ha ejecutado las líneas anteriores, puede probar esta teoría abriendo un cuaderno y ejecutando:

 import sys sys.path 

Si las primeras rutas no muestran ‘envs / tensorflowproblem’ como parte de ellas, se explicaría el problema.

Para la notebook jupyter, el siguiente paquete de Python es útil para administrar en qué entorno de kernel / anaconda de Python se ejecuta una notebook con:

 pip install environment_kernels 

Ejecute esta instalación en su entorno predeterminado o en uno específico. Después de iniciar el jupyter notebook , debería ver las opciones para sus entornos de anaconda en dos lugares:

  1. opciones para comenzar un nuevo cuaderno
  2. en el kernel > change kernel lista desplegable del kernel > change kernel para una notebook existente.

Para más detalles, encontré esta publicación útil!

Tuve un problema similar: todos los paquetes que instalo en el terminal de Linux (ya sea usando conda o pip) funcionan bien (puedo importar) en la consola de Python de la siguiente manera (por ejemplo):

 >>> import tensorflow as tf >>> 

Así que en la consola PYTHON3 no tengo ningún problema, pero el portátil Jupyter daría error con el terrible masaje.

 "No module named tensorflow" 

Seguí una de las respuestas anteriores e hice lo siguiente en linux terminal:

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

Ahora “pip install xxx” me diría que el paquete ya existe, y no hay cambios. Pero ya que estoy usando python3 en el cuaderno Jupyter, lo intenté

 $pip3 install tensorflow 

en el terminal de Linux y ahora en mi portátil jupyter puedo hacer

 import tensorflow as tf 

No más mensaje “No hay módulo llamado tensorflow”. Usar el portátil Jupyter es genial, pero importar paquetes ha sido una pesadilla. Ya no debido a los pasos anteriores, pensé que comparto esto, tal vez salve a otros de una agonía similar :).

Lo más probable es que su computadora portátil no haya cargado el kernel correcto (entorno). El nombre del entorno se muestra en la esquina superior derecha. Vea el círculo rojo en la imagen de abajo. Si esto no es correcto, haga clic en Kernel-> Change Kernel y seleccione el kernel apropiado.

introduzca la descripción de la imagen aquí

Desde mi experiencia con el módulo xlrd trabajando en la consola y no en Jupyter, puede intentar ir a la carpeta Python de su sistema /usr/local/bin/ , luego buscar su versión de Python. Luego use el archivo pipXX allí para instalar el módulo que necesita.