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

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