[英]How to deal with submodule interdependency in Python?
我有一個帶有幾個子模塊的程序。 我希望子模塊可以獨立使用,以便我也可以在其他程序中使用其中的一些子模塊。 但是,子模塊具有相互依賴性,需要彼此之間的各個方面才能運行。 解決這個問題最少的方法是什么?
現在,我的程序結構如下:
myapp/
|-- __init__.py
|-- app.py
|-- special_classes
| |-- __init__.py
| `-- tools
| `-- __init__.py
|-- special_functions
| |-- __init__.py
| `-- tools
| `-- __init__.py
`-- tools
|-- __init__.py
|-- classes.py
`-- functions.py
其中每個子模塊都是其父級的git submodule
。
這樣做的好處是我可以獨立管理和開發每個子模塊,並且將這些子模塊之一添加到新項目中就像git clone
ing和git submodule add
它一樣簡單。 因為我在一個托管的共享計算環境中工作,所以這也使運行程序變得容易,因為用戶環境管理和軟件版本控制及安裝是有爭議的問題。
缺點是,在此示例中,我現在擁有3個tools
子模塊副本,它們彼此獨立,並且每當它們中的任何一個發生更改時都必須手動進行更新。 在子模塊上進行任何類型的開發都非常麻煩。 同樣,由於每個子模塊都運行測試,並且tools
模塊有3個副本,因此它現在使我運行的單元測試的數量增加了兩倍。
我已經看到了各種導入方法,例如這里提到的那些方法,但這似乎並不是理想的解決方案。
我已經在此處閱讀了有關如何創建正式的Python程序包的信息,但這似乎是一項艱巨的任務,並且會使最終用戶實際安裝和運行該程序更加困難。
在這里問另一個相關的問題
最好在父級中只有一個工具,然后將其導入子模塊。 到目前為止對我來說感覺最好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.