過去幾天這個問題一直令我瘋狂。Python:是否可以從多個外部庫中創建一個包?
所以基本上,我試圖將一個純Python項目移植到一個合適的PyCharm項目。這基本上可以提高代碼質量和項目結構。
我希望它基本上創建一個virtualenv來容納一切,但事實並非如此簡單。該項目最終將由多位開發人員以Git作爲源代碼控制同時開發,默認庫將被修改爲。我認爲這意味着圖書館應該最終由Git進行追蹤。就我所知,Virtualenv在這裏不應該有任何幫助,因爲它不能在系統之間移植(或者至少還在測試中)。
該項目將在未來部署到Centos服務器。
所以我能想到的唯一方案就是將所有庫(使用pip install -t Libraries <ExampleLibrary>
完成)簡單引入到一個文件夾中,裏面有一個__init__.py
,並使用它們從其他python文件作爲Pycharm項目中的一個包。
這是可能的/推薦?我嘗試過各種方法來引用這些庫,但它們在運行時都不起作用。不知何故,當庫中的文件從他們自己的包中導入別的東西時,會引發一個ImportError,說沒有這樣的模塊。
也會接受任何其他建議。
使用Pycharm社區版。
編輯:經過一個良好的夜間休息後,我認爲問題的癥結實際上只是項目組織。在將它移植到Pycharm之前,該項目按預期工作,但它具有根目錄中的所有python文件和根目錄子文件夾中的庫,每個項目文件具有相同的樣板代碼: import os, sys absFilePath = os.path.dirname(os.path.abspath(__file__)); sys.path.insert(1, absFilePath + "/lib")
我希望通過使用Pycharm來幫助我充實軟件包,我可以避免重複樣板代碼。
爲什麼你要修改你的依賴?這通常會導致你的問題......你可以繼承它們並添加/修改你想改變的功能嗎?如果你絕對需要供應商的東西,看看在他們的回購有它自己的幾個包的版本的請求庫。 (如果你正在修改依賴關係,它們必須從一開始就在git中!) –
我的修改只是一些庫函數中的一行,他們不應該打破結構,我想呢?你從圖書館繼承的建議是我沒有想到的,但是我不知道如果我朝那個方向前進,我會如何做出我想做的改變。 是的,在將項目移植到Pycharm之前的原始計劃是將這些庫放在項目文件夾旁邊的git倉庫中。但是現在我只想要一個更好的項目結構,因爲以前,所有東西都在根文件夾中,這使得事情變得混亂。 –
如果你的代碼質量不是很好,你可能想閱讀如何解決*那*。添加一個IDE不太可能會奇蹟般地修復你的任何問題,甚至像Pycharm一樣好。 –