我无法在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的新手,不知道从哪里开始。提前谢谢。
您必须记住的关键是,您的机器上通常不只有一个python
解释器。现在很多系统都同时带有python2.7
和python3.x
,也许还有更多。每个解释器都维护自己的一组已安装包,并有自己的一套已安装脚本,如ipython
或pip
。当您在shell中键入pip
时,通常不清楚您实际调用的是哪个pip
。是python3
的点子还是python2
的点子?
这里是你可能遇到麻烦的地方:
PATH中的ipython
和python
可执行文件不一定属于同一个解释器:假设python
和pip
属于python2
安装,但您随后决定将ipython
安装到python3
解释器中。现在ipython
看到了python3
解释器的包,而python
看到了所有的python2
包。
如果在这种情况下比较which ipython
和which python
的输出,您会注意到您得到的路径属于不同的解释器。
那么,你如何为你最喜欢的口译员调用脚本呢?如果python
指向您最喜欢的解释器,则某些包为您提供了一种通过-m
参数进行调用的好方法:您可以编写python -m pip install ipython
,而不是pip install ipython
,并确保您调用了您最喜欢python解释器的pip
版本。
类似地,您可以通过python -m IPython notebook
启动ipython notebook
。
以上都是真的,谢谢@cel。我每个月左右都会中断我的安装b/c我是一名管理员,负责安装和删除等等。上周我摔坏了东西,遇到了和上面一样的问题,除了蟒蛇3。我所做的只是pip3 uninstall ipython; pip3 install ipython
,我让我的熊猫和其他图书馆链接回来可用。
pip install ipython
如果你来到终端并写下这段代码,问题就会得到解决。