我有一个以
开头的ipython笔记本import sklearn
当我运行它时,我得到:
ImportError: No module named sklearn
的确如果我在笔记本上运行以下代码片段,它就不会显示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
但是,当我从命令行运行代码段时,scikit_learn就在列表中。
我想到了一个版本问题(为一个版本而不是另一个版本安装的模块),在笔记本和命令行上都有bur,sys.version给出2.7.5
关于这个问题的任何想法?
关注cel的评论:
ipython -c "import sys; print(sys.executable)"
输出/ usr / bin / python(在笔记本中直接运行import sys; print(sys.executable)
)
然后,/usr/bin/python -m pip install scikit-learn
输出:要求已经满足(使用--upgrade升级):scikit-learn in / Users / MyUserName
答案 0 :(得分:4)
我能够在Ubuntu上修复此错误,方法是在将模块目录附加到路径的笔记本顶部添加一个单元格:
import sys
sys.path.append('/usr/lib/python2.7/dist-packages')
运行pip install <something>
(例如numpy)时可以找到添加路径,它会告诉您每个软件包的安装位置或已存在。
答案 1 :(得分:0)
/ usr / bin / python实际上是一个符号链接吗?
更好的解决方案是你应该从包含你需要的所有模块的virtualenv运行你的ipython笔记本。