我一直使用Python來處理單個文件的腳本,現在我正在處理我的第一個「複雜」項目,所以我還沒有使用Python(3.x)中的軟件包的經驗。哪個是在複雜的Python項目中處理導入的正確方法?
我知道這是一個經常被問到的問題,但我錯過了一些東西,用於在我的項目中成功組織模塊導入,這應該用作庫。
假設以下項目樹:
myProject/
- subpackage1/
- __init__.py
- other1.py
- subpackage2/
- __init__.py
- other2.py
- __init__.py
- foo.py
- bar.py
這是相互導入模塊的正確方法是什麼?特別是:
- 從
other1
- 導入
other1
從other2
- 導入
foo
從bar
- 導入
foo
發育過程中導入foo
(這是一個庫)從不同的目錄(是虛擬環境中的正確的選擇?)
謝謝!
編輯:(使問題更具體)我明顯地嘗試之前不同的方法。我在一些受歡迎的項目中看到的是使用絕對導入像from myProject.subpackage1.other1 import something
。它看起來像一個乾淨的解決方案(類似於我在Java中所做的),但採用這種方法時,由於導入錯誤,我不能簡單地運行我的代碼。可以virtualenv
是在嘗試導入它們之前安裝軟件包的解決方案嗎?