創建Python包時,實際的頂級命令經常安裝在PATH文件夾中,例如/ usr/local/bin。它引用相關的所有封裝模塊,他們需要與包名被明確限定:打包和argparse
import package.module
,並明確要求
package.module.function(args)
在一個大包,具有廣泛用途argparse,有可能會有數百個對包中函數和變量的引用,當從/usr/local/bin/cmd.py引用時,所有這些引用都需要使用包名進行限定。這對於生產使用來說很好,但是在開發過程中很痛苦,因爲每次測試更改時都需要重新安裝軟件包。 (即它只能找到那個模塊,明確的位置。
所以,最後,我的問題: - 命令本身(/usr/local/bin/cmd.py)可以是一個存根導入一個模塊的封裝內,包含argparser及其定義?
使用這個方法,所有的模塊(除了Stub)住包目錄和封裝內引用中會發現所有,而不需要其他模塊明確聲明它們的包名
除了下面的答案,請確保你開發一個好的單元測試套件。如果你有很好的單元測試覆蓋率,那麼你就不需要像經常一樣進行完整的端到端測試了(你可能會檢查更多的代碼是更少的時間)。 – mgilson