当我尝试导入模块时illustris_python
我收到错误
导入错误:没有名为“util”的模块
该模块util
位于模块下面的目录中snapshot.py
需要它,所以我很困惑为什么Python看到一个模块,而不是另一个。
我在下面包含了导入调用和回溯。
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.
IPython 3.0.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
%guiref -> A brief reference about the graphical user interface.
In [1]: import illustris_python as il
Traceback (most recent call last):
File "<ipython-input-1-ff06d24b4811>", line 1, in <module>
import illustris_python as il
File "C:\WinPython-64bit-3.4.3.2\python-3.4.3.amd64\lib\site-packages\illustris_python\__init__.py", line 3, in <module>
from . import *
File "C:\WinPython-64bit-3.4.3.2\python-3.4.3.amd64\lib\site-packages\illustris_python\snapshot.py", line 6, in <module>
from util import partTypeNum
ImportError: No module named 'util'
In [2]:
显示位置的屏幕截图util
:
看着BitBucket 存储库,我很确定问题在于这段代码仅适用于 Python 2.x。有人已经做了一些工作来清理它以便最终移植,但还有更多工作要做。
这个特定的错误是靠近顶部的snapshot.py:
from util import partTypeNum
在 Python 2.6 中,这是一个relative导入(它被“弃用”PEP 328,但我很确定默认情况下您实际上并没有收到警告...),因此它首先在与snapshot.py
,它找到一个util.py
,在查看您的sys.path
.
在 Python 3.4 中,它是absolute导入,所以它只是在你的sys.path
(嗯,它调用你的顶级模块查找器,但这通常意味着在你的sys.path
),并且没有util.py
there.
如果您尝试自己完成将此示例代码移植到 3.x,只需将其更改为显式相对导入:
from .util import partTypeNum
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)