[英]Python: using packages from a different environment
我安裝了兩個Python環境。 EnvA是我的默認最新環境,而EnvB是EnvA中使用的某些軟件包的較舊版本。 是否可以從使用EnvA解釋程序運行的程序中啟動基於EnvB的代碼?
舉一個實際的例子:我有一個pyqt5 GUI,可用來轉換* .ui文件,它基本上調用了pyuic5
shell命令。 我想添加將.ui轉換為pyqt4代碼的選項,這是不可能的,因為在此環境中PyQt4
庫已被PyQt5
取代。 我的主程序是否可以在具有不同python環境的子進程/解釋器/ ..中執行腳本,並在腳本完成其工作后返回?
確實不建議這樣做,但是您可以通過修改sys.path
。 只需在sys.path
從EnvB前面的包中添加路徑,Python就會在獲取EnvA版本之前對其進行提取。
您也可以使用importlib
從完全限定的路徑中專門導入。 這個另一個答案有一些很好的例子,但是基本上看起來像這樣:
spec = importlib.util.spec_from_file_location("module", "path/to/file.py")
module = importlib.util.module_from_spec(spec)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.