Unable to import a module from Python notebook in

2020-01-28 04:06发布

I have an environment that I started using Anaconda and I successfully installed a module in it. I know it, because I can run python and then import tensorflow. This also works when through ipython. The problem is, that I cannot load the module from a notebook that I start using either ipython notebook or jupyter (even though I execute either from an active environment).

I suspect it relates to the setting of ipython but I don't know how to debug and solve the issue. Any idea?

Edit: Here are the steps I took:

  1. conda create --name tensorflowproblem python=2.7 to create an environment
  2. source activate tensorflowproblem
  3. conda install --name tensorflowproblem jupyter to install jupyter
  4. pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl to install tensorflow

The locations of pip and jupyter:

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

Note that the directory ~/anaconda/envs/tensorflowproblem/lib/python2.7/site-packages/tensorflow exists.

In addition neither python -c "import tensorflow" nor ipython -c "import tensorflow" yield any kind of error.

As requested, also the out put of

$ 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

In addition, as requested, the output of sys.path is:

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

5条回答
聊天终结者
2楼-- · 2020-01-28 04:20

From my experience with module xlrd working in console and not in Jupyter, you can try go to your system Python folder /usr/local/bin/, then look for your python version. Then use the pipXX file there to install the module you require.

查看更多
戒情不戒烟
3楼-- · 2020-01-28 04:27

For jupyter notebook, the following python package is useful for managing which python kernel / anaconda environment to run a notebook with:

pip install environment_kernels

Run this install either in your default environment, or a specific one. After starting jupyter notebook you should see the options for your anaconda environments in two places:

  1. options to start a new notebook
  2. in the kernel > change kernel dropdown for an existing notebook.

For more details, I found this post helpful!

查看更多
Explosion°爆炸
4楼-- · 2020-01-28 04:27

Most likely your notebook has not loaded the right kernel (environment). The environment name is shown in the top right corner. See the red circle in the image below. If this isn't right, then click on Kernel->Change Kernel and select the appropriate kernel.

enter image description here

查看更多
时光不老,我们不散
5楼-- · 2020-01-28 04:27

I had a similar problem: Every package I install on Linux terminal (either using conda or pip) works fine (I can import) on python console as follows (for example):

>>> import tensorflow as tf
>>>

So on PYTHON3 console I get no problem:but Jupyter notebook would give error with the dreadful massage

"No module named tensorflow" 

I followed one of the answers above and did the following on linux terminal:

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

Now "pip install xxx" would tell me package already exists, and no change. But since I am using python3 on Jupyter notebook, I tried

$pip3 install tensorflow

on Linux terminal and now in my jupyter notebook I can do

import tensorflow as tf

No more "No module named tensorflow" message. Using Jupyter notebook is great, but importing packages had been a nightmare. Not anymore due to above steps, thought I share this, perhaps I save others from similar agony :).

查看更多
混吃等死
6楼-- · 2020-01-28 04:41

Try the following:

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

It sounds like your tensorflowproblem env doesn't have an ipython kernel, but another (probably your root) env does. When you are launching Jupyter, it is putting you into the env with the kernel but without the tensorflow package. If you haven't run the above lines yet, you could test this theory by opening a notebook and running:

import sys
sys.path

If the first few paths don't show 'envs/tensorflowproblem' as part of them it would explain the issue.

查看更多
登录 后发表回答