我是 Python 的初學者。在開始之前,這是我的 python 檔案夾結構。
-project
---main.py
---secondary-folder
----------new_main.py
---model
----------__init__.py
----------abc.py
在project檔案夾下,我有一個model檔案夾,其中包含兩個 python 檔案__init__.py,abc.py內容如下:
class ABC:
def print_abc(self):
print("abc")
接下來在我的main.py和new_main.py是相同的內容:
from model.abc import ABC
if __name__ == "__main__":
ABC().print_abc()
每當我在檔案夾python3 ./secondary-folder/new_main.py下運行時,project都會導致錯誤:
Traceback (most recent call last):
File "./secondary-folder/new_main.py", line 1, in <module>
from model.abc import ABC
ModuleNotFoundError: No module named 'model'
abc但是如果我在檔案夾main.py下運行,終端可以列印出來。project
有什么我錯過的嗎?
uj5u.com熱心網友回復:
如果您嘗試從運行檔案的檔案夾中匯入代碼正在尋找的內容。
所以在檔案夾中secondary-folder你沒有名為model. project在這種情況下,您必須將該檔案夾保留為呼叫父檔案夾。
試試這個new_main.py:
from project.model.abc import ABC
if __name__ == "__main__":
ABC().print_abc()
uj5u.com熱心網友回復:
在我做了一些研究之后,我從這個鏈接中得到了一個想法,超越了相對匯入中的頂級包錯誤
所有專案檔案夾都必須添加ini .py 如下結構:
-project
---__init__.py
---main.py
---secondary-folder
----------__init__.py
----------new_main.py
---model
----------__init__.py
----------abc.py
然后運行命令python secondary-folder.new_main一切都會好的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/414640.html
標籤:
上一篇:當使用python的標頭中缺少內容處置時,如何從URL獲取檔案名?
下一篇:在串列中搜索包含字符的單詞
