IPython无法加载标准解释器工作的模块

时间:2015-04-22 10:14:03

标签: python ipython

我无法在IPython中加载python模块,该模块在普通解释器中运行良好。我已经分析了问题,并且不知何故IPython没有找到模块,而标准控制台确实:

这适用于普通的解释器:

>>> import sys
>>> sys.path.append(r'c:\development\...\ns.package-10.1.0.3-py2.7.egg')
>>> from ns import package
>>>

但是在IPython上却没有:

In [2]: import sys

In [3]: sys.path.append(r'c:\development\...\ns.package-10.1.0.3-py2.7.egg')

In [4]: from ns import package
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-4-c019e2988e33> in <module>()
----> 1 from ns import package

ImportError: cannot import name package

我觉得这很令人困惑。我是IPython的新手,我不知道从哪里开始。提前谢谢。

2 个答案:

答案 0 :(得分:4)

您必须记住的关键是,通常您的计算机上只有一个python解释器。现在许多系统同时包含python2.7python3.x,可能还有更多系统。每个解释器都维护自己的一组已安装的软件包,并拥有自己的已安装脚本集,例如ipythonpip。 当您在自己的shell中输入pip时,您实际上正在调用的pip通常并不明显。是python3还是python2&#39}?

这是你可以遇到麻烦的地方:

PATH中的ipythonpython可执行文件不必属于同一个解释器:假设pythonpip属于python2安装但是您决定将ipython安装到python3解释器中。 现在ipython会看到python3解释程序的包,而python会看到您的所有python2个解包。

如果您在这种情况下比较which ipythonwhich python的输出,您会注意到您获得了属于不同解释器的路径。

那你怎么能为你最喜欢的翻译调用脚本呢?如果python指向您最喜欢的翻译,某些软件包会为您提供一种通过-m参数调用的好方法:您可以编写pip install ipython而不是python -m pip install ipython,并确保您调用了pip你最喜欢的python解释器的ipython notebook版本。

类似的,您可以通过python -m IPython notebook启动$_POST

答案 1 :(得分:0)

以上所有都是正确的,谢谢@cel。我每个月都会中断安装,所以b / c我是安装和删除之类的管理员。上周我把东西弄坏了,除了上面提到的python3以外,还有与上面相同的问题。我所做的只是pip3 uninstall ipython; pip3 install ipython,我的大熊猫和其他图书馆都可以重新使用了。