【问题标题】:module not found on ipython notebook在 ipython 笔记本上找不到模块
【发布时间】:2015-01-11 21:00:34
【问题描述】:

我有一个以

开头的 ipython 笔记本
import sklearn

当我运行它时,我得到:

ImportError: No module named sklearn

确实,如果我在笔记本上运行以下 sn-p,它不会显示 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

但是,当我从命令行运行 sn-p 时,scikit_learn 在列表中。

我想到了一个版本问题(一个版本安装了模块,另一个没有安装),笔记本和命令行都bur,sys.version给2.7.5

对这里的问题有任何想法吗?

关注 cel 的 cmets:

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

【问题讨论】:

  • 为了使scikit-learnipython 中可用,您必须使用正确的pip 可执行文件安装scikit-learn。我会尝试以下方法:ipython -c "import sys;print(sys.executable)"。这应该打印一个 python 解释器的路径。然后你应该使用这个解释器并调用<path-to-interpreter> -m pip install scikit-learn来解决你的问题。
  • 但是ipython -c "import sklearn" 给你一个错误?
  • 不,它似乎没有工作。但是启动一个新笔记本并在其中运行“import sklearn”会导致 ImportError。
  • import sys;print(sys.executable) 在你的笔记本上打印/usr/bin/python?如果是这样,那确实很奇怪。
  • 是的,确实如此。我也会把它放在我的问题中。

标签: python pip ipython ipython-notebook


【解决方案1】:

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

更好的解决方案是你应该从一个包含你需要的所有模块的 virtualenv 运行你的 ipython notebook。

【讨论】:

    【解决方案2】:

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

    import sys
    sys.path.append('/usr/lib/python2.7/dist-packages')
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-17
      • 1970-01-01
      • 2018-09-03
      • 2014-02-22
      • 1970-01-01
      • 2014-07-16
      相关资源
      最近更新 更多