包裝蟒蛇我通過前面的問題,這個效果看,但我的情況略有不同...圓形進口
我有一個包含進口彼此在這裏和那裏必要幾個Python類目錄。我想開始將它們打包成更小的模塊,主要是爲了組織目的。該軟件包的核心組件設置了一個wsgi應用程序,然後額外的模塊爲其提供了功能(迄今爲止,該功能運行良好,因爲我可以在命令行上單獨測試這些mod,然後將其輸入連接到Web應用程序。)
我瞭解如何提供__init__.py
模塊,其命名空間以及何時釋放控制權。我遇到的問題是某些情況下的模塊相互導入。
例如,我有一個JSONEncoder,用作cls
參數,用於json.dumps()
的許多調用。這個類實際上用於每個文件。如果我將這些模塊中的某些模塊移動到程序包中的子目錄中,我將如何去「導入一個級別」來導入json編碼器?我需要將父目錄放在每個文件的PYTHONPATH中嗎?編碼器自己的目錄以及單獨的__init__.py文件會更好嗎?
另外,我是否最好放入一個函數來鑽取當前工作目錄下的所有目錄,並將它們添加到路徑中?
目前包含所有代碼的主目錄本身沒有打包......考慮到它們具有循環導入,將類像類遷移到子目錄的最佳方法是什麼?
編輯:
對於澄清:
我一直在開發的主要工作目錄只是包含大約十.py文件,它們都含有與像它們的文件名的名字班定期目錄。目前整個事情只是.py文件的git repo。
-project
search.py
jsonencoder.py
webapp.py
modela.py
modelb.py
modelc.py
名稱當然是例如目的。
現在據我所知(這可能是完全錯誤的)明智的做法是將這些模型打包在一起,對嗎?
-project
search.py
jsonencoder.py
webapp.py
-models
__init__.py
modela.py
modelb.py
modelc.py
但後來反過來又會在project
文件夾需要一個__init__
嗎?使用jsonencoder的modela將如何導入它?
「我有一個包含多個python類的目錄「。這不明智。目錄包含文件。目錄也可以是Python包。文件是模塊。模塊包含類定義。你能澄清你的問題嗎? – 2012-01-12 20:22:51
@ S.Lott編輯示例 – DeaconDesperado 2012-01-12 20:33:40