Jupyter笔记本,错误的sys.path和sys.executable

时间:2017-10-08 18:35:20

标签: python python-2.7 jupyter-notebook jupyter sys

我正在尝试在Jupyter笔记本中运行anaconda分发的python库,但是当我运行笔记本时,我一直得到ImportErrors,因为python路径设置为Mac OS X 10.11的默认分发

当我打印出sys.path和sys.executable时,它们在运行python vs运行jupyter notebook时有所不同。例如,

from pprint import pprint as p
import sys

p(sys.path)

在python中执行此操作后,我得到了正确的输出:

['',
 '/Users/glennraskovich/anaconda2/lib/python27.zip',
 '/Users/glennraskovich/anaconda2/lib/python2.7',
 '/Users/glennraskovich/anaconda2/lib/python2.7/plat-darwin',
 '/Users/glennraskovich/anaconda2/lib/python2.7/plat-mac',
 '/Users/glennraskovich/anaconda2/lib/python2.7/plat-mac/lib-scriptpackages',
 '/Users/glennraskovich/anaconda2/lib/python2.7/lib-tk',
 '/Users/glennraskovich/anaconda2/lib/python2.7/lib-old',
 '/Users/glennraskovich/anaconda2/lib/python2.7/lib-dynload',
 '/Users/glennraskovich/anaconda2/lib/python2.7/site-packages',
 '/Users/glennraskovich/anaconda2/lib/python2.7/site-packages/aeosa']

但是当我在jupyter笔记本中运行时,我得到了:

['', '/usr/local/lib/python2.7/site-packages/dask-0.11.0-py2.7.egg', '/usr/local/lib/python2.7/site-packages/networkx-1.11-py2.7.egg', '/usr/local/lib/python2.7/site-packages/six-1.10.0-py2.7.egg', '/usr/local/lib/python2.7/site-packages/Pillow-3.3.1-py2.7-macosx-10.11-x86_64.egg', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages', '/Library/Python/2.7/site-packages', '/usr/local/lib/python2.7/site-packages/IPython/extensions', '/Users/glennraskovich/.ipython']

对于sys.executable,

p(sys.executable)

在python中,正确输出:

/Users/glennraskovich/anaconda2/bin/python

但是在jupyter笔记本中,sys.executable未设置为anaconda版本

/usr/local/opt/python/bin/python2.7

我已经尝试在我的.bashrc和.bash_profile中设置PATH,并使用python的命令,其中jupyter等显示anaconda路径,但是jupyter notebook没有使用anaconda路径。这可能是什么问题?

3 个答案:

答案 0 :(得分:5)

我找到了解决方案,因为内核设置为使用默认的mac os x的python我使用命令修复了它

python2 -m pip install ipykernel

python2 -m ipykernel install --user

答案 1 :(得分:0)

当我使用Anaconda Navigator和命令行时遇到了这个问题。我在控制台中键入“ source activate”,然后使用Anaconda Navigator打开Jupyter。但是,在Anaconda Navigator中,我没有处于导致问题的正确环境中。这是因为Anaconda Navigator带有自己的针对虚拟环境的激活(当您单击它们时)。因此,您要么需要从控制台激活虚拟环境,然后从控制台启动Jupyter,要么需要在Anaconda Navigator中激活虚拟环境并从Navigator启动Jupyter。两种方法都可以工作,但不能组合使用。 :-)

答案 2 :(得分:0)

对我来说,我在创建环境后安装了Jupyter,但随后尝试运行从基本环境安装的模块。我通过“ jupyter kernelspec列表”(https://github.com/jupyter/notebook/issues/2563)发现,我位于C:\ Users \ username \ Anaconda37 \ share \ jupyter \ kernels \ python3 \ kernel.json的kernel.json指向我的python.exe工作环境更改了路径并解决了。

This 是python路径设置的详尽描述。