ImportError:没有名为'util'的模块

时间:2015-04-30 01:24:13

标签: python python-3.x import python-import

我知道这个问题有很多变化,但我找不到像我这样的人。当我尝试导入模块illustris_python时,我收到错误ImportError: No module named '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]: 

Screen shot showing location of util

2 个答案:

答案 0 :(得分:2)

看看the BitBucket repo,我很确定问题是这段代码只是Python 2.x.有人做了一些工作来清理最终端口,但还有更多工作要做。

此特定错误为near the top of snapshot.py

from util import partTypeNum

在Python 2.6中,这是一个相对导入({&#39; s&#34;已弃用&#34;由PEP 328,但我很确定你没有& #39;实际上默认情况下会收到警告...),因此在查看snapshot.py之前,它会首先查找与util.py相同的包,其中找到sys.path

在Python 3.4中,它是一个绝对导入,所以它只是在你的sys.path中查找(好吧,它会调用你的顶级模块查找程序,但通常这意味着看着你的sys.path),那里没有util.py

如果您尝试自己将此示例代码移植到3.x,只需将其更改为显式相对导入:

from .util import partTypeNum

答案 1 :(得分:0)

现在我已经解决了你的问题。我所做的是在“illustris_python”方向打开终端。希望它可能会有所帮助。