我当前环境中的包的ImportError

时间:2017-10-18 07:20:26

标签: python anaconda jupyter-notebook

我正在尝试恢复一些旧的IPython笔记本并将它们更新为Python 3.我试图让它们在旧环境中首先工作并找到一个棘手的难题,在当前环境中获取包的ImportErrors。我正在进行Anaconda Python安装。

我首先导航到我项目的文件夹中启动笔记本:

cd /folder/of/project

然后:

jupyter notebook

我创建了一个新的笔记本,这里是笔记本中!conda list的摘录和我得到的错误:

# packages in environment at /anaconda2:
#

...
Delorean                  0.6.0                     <pip>
...
pylint                    1.7.2            py27h718c7e7_0  
pymongo                   3.4.0                    py27_0  
pyodbc                    4.0.17           py27hc9de18c_0  
...

显然,感兴趣的软件包Deloreanpymongo都在环境中。 pymongo本地安装了conda,但Delorean只能通过pip安装。

[1] import pymongo

ImportError                               Traceback (most recent call last)

<ipython-input-2-ec8fdd1cd630> in <module>()
----> 1 import pymongo


ImportError: No module named pymongo

[2] from delorean import Delorean

ImportError                               Traceback (most recent call last)

<ipython-input-3-2b02cbe45080> in <module>()
----> 1 from delorean import Delorean


ImportError: No module named delorean

我在使用conda以及默认环境创建的各种虚拟环境中尝试过此操作。我已经查看了StackOverflow上的各种问题,仍然没有得到解决方案。

在回应评论时,以下是jupyter和python的路径:

$ which jupyter

/anaconda2/bin/jupyter

$ which python

/anaconda2/bin/python

为了解决这个谜团,尝试按照@Sraw的建议从python shell导入包,效果很好。

$ python
Python 2.7.13 |Anaconda custom (x86_64)| (default, Sep 21 2017, 17:38:20)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymongo
>>> from delorean import Delorean
>>>

因此问题仅限于jupyter笔记本内部。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。它是由我试图兼顾不同的Python 2和3版本以及多个试用虚拟环境而创建的。我最终得到了一个旧的用户特定的anaconda安装和一个新的anaconda root用于所有用户。发现是通过找到

来做出的
import sys
sys.path
当我从Python shell和笔记本内部运行这些报告时,

给出了不同的报告。

我清除了特定于用户的anaconda安装,重新安装了最新的anaconda版本,添加了相关的软件包,并安装了并行的ipython内核(as described here)。

该问题已得到解决,并成为保持root python安装干净并正确使用虚拟环境的重要性的一课。