在ipython笔记本上找不到模块

P. *_*eri 14 python pip ipython ipython-notebook

我有一个开头的ipython笔记本

import sklearn
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到:

ImportError: No module named sklearn
Run Code Online (Sandbox Code Playgroud)

事实上,如果我在笔记本上运行以下代码片段,它就不会显示scikit_learn:

import pip
installed_packages = pip.get_installed_distributions()
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
     for i in installed_packages])
print installed_packages_list
Run Code Online (Sandbox Code Playgroud)

但是,当我从命令行运行代码段时,scikit_learn位于列表中.

我想到了一个版本问题(为一个版本而不是另一个版本安装的模块),在笔记本和命令行上都有bur,sys.version给出2.7.5

有关这个问题的任何想法吗?

根据cel的评论:

ipython -c "import sys; print(sys.executable)" 
Run Code Online (Sandbox Code Playgroud)

输出/ usr/bin/python(import sys; print(sys.executable)直接在笔记本中运行)

然后,/usr/bin/python -m pip install scikit-learn 输出:要求已经满足(使用--upgrade升级):scikit-learn in/Users/MyUserName

Mag*_*eek 5

通过在笔记本顶部添加单元格并将模块目录附加到路径,我能够在Ubuntu上解决此错误:

import sys
sys.path.append('/usr/lib/python2.7/dist-packages')
Run Code Online (Sandbox Code Playgroud)

运行时可以找到要添加的路径pip install <something>(例如numpy),它告诉您每个软件包的安装位置或已经存在的位置。


asm*_*cdo 0

/usr/bin/python 有可能实际上是一个符号链接吗?

更好的解决方案是您应该从包含您需要的所有模块的 virtualenv 运行 ipython 笔记本。