2017-08-15 71 views
0

我在我的項目中添加了一個git子模塊。現在,該子模塊中的所有進口都已損壞,因爲我必須使用完整的導入路徑。 例如,如果該結構是這樣的:python導入二級包

MYPROJECT:
- submodule_project:
- 包1:
--- code1.py
- 包2:
--- code2.py

現在,在code1.py中有from package2 import code2。它告訴我package2是未解決的參考。只有將其更改爲from submodule_project.package2 import code2才能解決問題。
我不想要這個,因爲我不想改變子模塊中的任何東西。我只是添加它來在我的項目中使用它的一些軟件包,並在開發人員更新時定期更新它。

回答

0

如果你想package2是一個頂級的可導入包,它的父目錄(submodule_project在你的情況)必須在sys.path。有很多方法可以做到這一點:sys.path.append(),sys.path.insert(),PYTHONPATH環境變量。

或者您可能不想讓代碼作爲子模塊。如果子模塊中的代碼使用絕對導入而不是相對(from ..package2 import code2),則沒有意義擁有子模塊。可能是該軟件包應安裝在site-packages(全局或虛擬環境中),但未作爲子模塊附加到項目中。