在Python環境中維護一個庫的多個版本是否有任何實際的解決方案?如何維護一個庫的多個版本
例如,我有一個使用可插拔設計一個Web框架。在這個框架下,可以註冊幾個應用程序(應用程序和框架在同一個python進程中運行)。
每個應用程序都將有自己的商業邏輯代碼和通用代碼,說common_httplib
。問題是我如何確保common_httplib
的多個版本不會相互衝突?
每個應用程序預計將使用的common_httplib
但不同版本的自己的副本。 絕對進口,進口吊鉤,小鬼等不工作,因爲common_httplib
可以導入其他可能具有相同的版本問題,第三方庫。
以下是應用程序的代碼結構。
在$FRAMEWORK_HOME/apps/
,有:
/app1
/common_httplib (version 1)
/third_party libs
/app1 BLO code
/app2
/common_httplib (version 2)
/third_party libs
/app2 BLO code
謝謝!但我不知道如何處理這種情況?請注意** httpmodule **名稱在這兩個版本中是相同的。其中只有一個可以在sys.modules中。 myhttplib1.0 - > httpmodule(1.0) myhttplib2.0 - > httpmodule(2.0) – 2015-04-01 23:18:41
這意味着您需要**重命名**其中一個模塊,以及它導入的共享但不兼容的模塊。我建議使用'httpmoduleold'作爲舊版本,並嘗試更新舊版本的項目以使用新版本,並且將來可以單元測試您的API並儘量不要做出重大更改。 – 2015-04-02 00:31:02