這是我第一次嘗試從不同的文件夾導(dǎo)入。結(jié)構(gòu)如下:application │ ├── __init__.py │ ├── folder │ ├── file.py │ └── __init__.py │ └── folder2 ├── some_file.py │ └── __init__.py我想將 some_file 導(dǎo)入到 file.py 我嘗試這樣做from application.folder2 import some_file,但它不起作用:ModuleNotFoundError:沒有名為“application”的模塊。注意:視覺代碼將文件夾識(shí)別為模塊,因此我僅在運(yùn)行時(shí)收到錯(cuò)誤。我點(diǎn)擊了這個(gè)最適合我的答案鏈接。這里有什么問題嗎?
1 回答

胡說叔叔
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
TLDR:將程序作為程序包的一部分運(yùn)行:
$?python3?-m?application.folder.file
模塊的搜索路徑源自主腳本等。跑步
$?python3?application/folder/file.py
意味著搜索路徑在內(nèi)部application/folder
——沒有application
模塊的地方。
由于應(yīng)用程序似乎是作為一個(gè)包無論如何,使用-m
開關(guān)來運(yùn)行您的文件作為包結(jié)構(gòu)的一部分:
$?python3?-m?application.folder.file
這將查找application
包(包括當(dāng)前目錄)并遞歸遍歷到.folder
和.file
。這保證了導(dǎo)入路徑與包布局匹配。
為了從包含該文件夾的文件夾之外的另一個(gè)文件夾中使用它application
,請(qǐng)安裝該包或設(shè)置PYTHONPATH
為指向 的父文件夾application
。
$?export?PYTHONPATH=$(PYTHONPATH):/path/to/parent_of_application $?python3?-m?application.folder.file
添加回答
舉報(bào)
0/150
提交
取消