无法从Jupyter中的Python笔记本导入模块 [英] Unable to import a module from Python notebook in Jupyter
问题描述
我有一个开始使用Anaconda
的环境,并且已在其中成功安装了一个模块.我知道这一点,因为我可以先运行python
然后运行import tensorflow
.通过ipython
时,这也适用.问题是,我无法从开始使用ipython notebook
或jupyter
的笔记本中加载模块(即使我是在活动环境中执行的).
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).
我怀疑它与ipython
的设置有关,但是我不知道如何调试和解决问题.有什么主意吗?
I suspect it relates to the setting of ipython
but I don't know how to debug and solve the issue. Any idea?
这是我采取的步骤:
Here are the steps I took:
-
conda create --name tensorflowproblem python=2.7
创建环境 -
source activate tensorflowproblem
-
conda install --name tensorflowproblem jupyter
安装jupyter -
pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
安装tensorflow
conda create --name tensorflowproblem python=2.7
to create an environmentsource activate tensorflowproblem
conda install --name tensorflowproblem jupyter
to install jupyterpip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
to installtensorflow
pip
和jupyter
的位置:
$ which -a pip
/Users/dror/anaconda/envs/tensorflowproblem/bin/pip
$ which -a jupyter
/Users/dror/anaconda/envs/tensorflowproblem/bin/jupyter
请注意,目录~/anaconda/envs/tensorflowproblem/lib/python2.7/site-packages/tensorflow
存在.
此外,python -c "import tensorflow"
和ipython -c "import tensorflow"
均不会产生任何类型的错误.
In addition neither python -c "import tensorflow"
nor ipython -c "import tensorflow"
yield any kind of error.
根据要求,也输出
$ 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
此外,根据要求,sys.path
的输出为:
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']
推荐答案
尝试以下操作:
source activate tensorflowproblem
conda install notebook ipykernel
ipython kernel install --user
听起来您的tensorflowproblem env没有ipython内核,但是另一个(可能是您的root)env有.当您启动Jupyter时,它将使您进入带有内核但没有tensorflow软件包的环境.如果您还没有运行上述代码,则可以通过打开笔记本并运行以下命令来验证该理论:
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
如果前几个路径中没有显示"envs/tensorflowproblem",则可以解释该问题.
If the first few paths don't show 'envs/tensorflowproblem' as part of them it would explain the issue.
这篇关于无法从Jupyter中的Python笔记本导入模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!