看来你试图从creator
文件夹中运行xbot.py
。
这是输出我用含import util
xbot.py
得到:
C:\Users\Luke\Python stuff\AXBot\creator>xbot.py
Traceback (most recent call last):
File "C:\Users\Luke\Python stuff\AXBot\creator\xbot.py", line 4, in <module>
import util
ImportError: No module named util
这是输出我用含xbot.py
from . import util
C:\Users\Luke\Python stuff\AXBot\creator>xbot.py
Traceback (most recent call last):
File "C:\Users\Luke\Python stuff\AXBot\creator\xbot.py", line 3, in <module>
from . import util
ValueError: Attempted relative import in non-package
我也得到后者的错误与from .. import util
代替from . import util
得到。
如果您从包含它的目录运行xbot.py
,Python无法确定它是否在包层次结构中运行。它认为xbot.py
不在包内。
我取代了尝试导入util
与from AXBot import util
线,感动了一对夫妇的目录,并使用Python的-m
命令行开关,它告诉Python来运行的模块名称而不是文件名指定的模块运行xbot.py
。请注意,当您使用-m
,你的模块,包括包层次的完全限定名称传递,但不包括文件扩展名.py
,因为这不是模块的名称的一部分:
C:\Users\Luke\Python stuff\AXBot\creator>cd ..\..
C:\Users\Luke\Python stuff>python -m AXBot.creator.xbot
1232
如果我使用import AXBot.util as util
而不是from AXBot import util
,我得到了相同的输出。
(我没有你的代码运行,所以不是我把一个变量util.py
,并试图从xbot.py
内打印其值。这个变量的值是1232
)。
从哪个目录是你运行代码以及如何启动它? – 2012-07-14 20:22:28
没有* util *模块可导入。 Python只会在modules目录和'sys.path'中的所有目录中查找要导入的模块,并且* AXBot.creator *包中根本没有模块* util *。使用'导入AXBot.settings作为设置'或'从AXBot导入设置' – 2012-07-14 20:36:07
但没有答案是解决方案。 – 2012-07-14 20:49:58