我无法在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的新手,我不知道从哪里开始。提前谢谢。
答案 0 :(得分:4)
您必须记住的关键是,通常您的计算机上只有一个python
解释器。现在许多系统同时包含python2.7
和python3.x
,可能还有更多系统。每个解释器都维护自己的一组已安装的软件包,并拥有自己的已安装脚本集,例如ipython
或pip
。
当您在自己的shell中输入pip
时,您实际上正在调用的pip
通常并不明显。是python3
还是python2
&#39}?
这是你可以遇到麻烦的地方:
PATH中的ipython
和python
可执行文件不必属于同一个解释器:假设python
和pip
属于python2
安装但是您决定将ipython
安装到python3
解释器中。
现在ipython
会看到python3
解释程序的包,而python
会看到您的所有python2
个解包。
如果您在这种情况下比较which ipython
和which 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
,我的大熊猫和其他图书馆都可以重新使用了。