我正在尝试恢复一些旧的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
...
显然,感兴趣的软件包Delorean
和pymongo
都在环境中。 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笔记本内部。
答案 0 :(得分:0)
我已经解决了这个问题。它是由我试图兼顾不同的Python 2和3版本以及多个试用虚拟环境而创建的。我最终得到了一个旧的用户特定的anaconda安装和一个新的anaconda root用于所有用户。发现是通过找到
来做出的import sys
sys.path
当我从Python shell和笔记本内部运行这些报告时,给出了不同的报告。
我清除了特定于用户的anaconda安装,重新安装了最新的anaconda版本,添加了相关的软件包,并安装了并行的ipython内核(as described here)。
该问题已得到解决,并成为保持root python安装干净并正确使用虚拟环境的重要性的一课。