然后脚本运行,然后显示没有名为 package.file.py 的模块



我有一个名为package的包,里面有file.py。结构看起来像

/package
  __init__.py
  file.py

里面file.py,只是

print "hello world"

当我使用 python -m package.file.py 执行 file.py 时,它运行并输出hello world然后

C:Python27python.exe: No module named package.file.py

这是怎么回事?代码从字面上运行,然后是错误。

你要求 Python 加载位于 package.file 中的py模块。您没有这样的模块。

但在 Python 确定它不存在之前,它首先必须加载父包。所以这会发生:

import package         # succeeds
import package.file    # succeeds, code prints "hello world"
import package.file.py # fails

删除.py部分;加载模块时不指定文件扩展名。以下内容有效,不会引发异常:

python -m package.file

相关内容

最新更新