簡體   English   中英

Python:使用來自其他環境的軟件包

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM