2017-05-26 46 views
-2

我有一個名爲packagefile.py裏面。該結構看起來像腳本運行然後說沒有模塊命名package.file.py

/package 
    __init__.py 
    file.py 

裏面file.py,只是

print "hello world" 

當我執行file.py使用python -m package.file.py, 運行和輸出hello world其次

C:\Python27\python.exe: No module named package.file.py 

怎麼回事這裏?代碼從字面上運行,然後出現錯誤。

+0

您需要運行'蟒蛇-m package.file'(刪除擴展名) – vaultah

+0

它管理訪問'package.file',當它運行'打印'hello world'(因爲你不用'if __name__ =='__main __':')來保護它,但是在那之後找不到模塊'py'。 – jonrsharpe

回答

2

您正在詢問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 
相關問題