我有一个名为package
且内有file.py
的包。结构看起来像
/package
__init__.py
file.py
在file.py
内,只是
print "hello world"
当我使用python -m package.file.py
执行file.py时,
它运行并输出hello world
,然后输出
C:\Python27\python.exe: No module named package.file.py
这是怎么回事?代码字面上运行后跟错误。
答案 0 :(得分:2)
您要求Python加载位于py
包中的package.file
模块。你没有这样的模块。
但在Python确定它不存在之前,它首先必须加载父包。所以这发生了:
import package # succeeds
import package.file # succeeds, code prints "hello world"
import package.file.py # fails
放弃.py
部分;加载模块时,不要指定文件扩展名。以下工作并没有抛出异常:
python -m package.file