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

时间:2017-05-26 21:16:37

标签: python

我有一个名为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

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

1 个答案:

答案 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