[英]Running Python a script from another directory
首先,假設以下文件結構:
project-dir
|_
package1
|_
__init__.py
module1.py
module2.py
以及以下腳本內容:
module2.py:
def func_module2():
print('func_module2 run')
module1.py:
from package1 import module2
module2.func_module2()
從項目目錄執行以下命令會產生錯誤:
python package1/module1.py
錯誤:
Traceback (most recent call last):
File "./package1/module1.py", line 1, in <module>
from package1 import module2
ImportError: No module named 'package1'
為什么會發生這種情況,又有可能從另一個目錄運行Python腳本嗎?
Python 3.5.2
您的問題似乎是module1.py
和module2.py
都位於同一包中。 在module1.py
您不會在另一個軟件包中找到module2.py
。 而是嘗試:
import module2
module2.func_module()
嘗試我得到:
> python package1/module1.py
func_module2 run
但是,如果您希望它也作為軟件包工作(或使用新版本的python),則必須使用
from . import module2
module2.func_module()
但這會使python package1/module1.py
無法工作,因為它不會作為程序包的一部分運行。 相反,您可以使用
> python -m package1.module1
func_module2 run
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.