我一直在研究如何為自定義 python 包構建文件夾結構。有幾次嘗試,但似乎沒有一個是普遍適用的。特別是文件的使用(或不使用\__init__.py)。我有一個由幾個子包組成的包,每個包都負責解析某種類型的文件。因此,我目前采用了這種結構:Parsers/├── __init__.py|├── ExternalPackages│ ├── __init__.py│ ├── package1│ └── package2|├── FileType1_Parsers/│ ├── __init__.py│ ├── parsers1.py│ └── containers1.py│ └── FileType2_Parsers/ ├── __init__.py ├── parsers2.py └── containers2.py但它似乎不是很pythonic,當我導入他的包并且我想使用某個模塊的某個類時,我必須輸入類似的東西from Parsers.FileType1_Parsers.parsers1 import example_class是否有關于如何構建此類包的約定或關于如何避免如此長的導入行的任何規則?
2 回答

慕尼黑的夜晚無繁華
TA貢獻1864條經驗 獲得超6個贊
您可以將以下行添加到 Parsers/__init__.py
from .FileType1_Parsers.parsers1 import example_class
然后,你可以導入example_class
通過
from Parsers import example_class
這是大包裝中的常見做法。

慕后森
TA貢獻1802條經驗 獲得超5個贊
您可以sys.path
在運行時進行修改,使其包含您將使用的每個模塊的目錄。例如,對于 package1 發出以下語句:
>>> sys.path.append(r"[package directory path]\\Parsers\\FileType1_Parsers\\package1")
您也可以對包中的任何其他模塊執行此操作?,F在,你可以使用這個命令:
from package1 import example_class
希望這可以幫助!
添加回答
舉報
0/150
提交
取消