簡體   English   中英

Conda (Python) 虛擬環境不能從 Windows 移植到 Linux

[英]Conda (Python) Virtual Environment is not Portable from Windows to Linux

在我的 Windows 10 機器上,我使用以下命令創建了一個虛擬環境:

>conda env export > environment.yml 

我嘗試在 Windows 系統上使用 yml 文件重新創建虛擬環境,效果很好。 然后我使用相同版本的 conda 和 python 將 environment.yml 傳輸到我的 Linux 機器(Ubuntu 16.04.1)並在終端中運行以下命令:

$ conda env create -f environment.yml

我收到以下錯誤:

使用 Anaconda Cloud api 站點https://api.anaconda.org
獲取包元數據.......
解決封裝規格:.
錯誤:當前 linux-64 頻道中缺少軟件包:
- jpeg 8d vc14_0
- libpng 1.6.22 vc14_0
- libtiff 4.0.6 vc14_2
- mkl 11.3.3 1
- numpy 1.11.1 py35_1
- openssl 1.0.2h vc14_0
- pyqt 4.11.4 py35_7
- qt 4.8.7 vc14_9
- 傳統知識 8.5.18 vc14_0
- vs2015_runtime 14.0.25123 0
- zlib 1.2.8 vc14_3

大多數這些軟件包都可以在 conda 的 linux 存儲庫中找到,但具有不同的風格。 例如,如果我從 yml 文件中包含 jpeg 包的行中刪除 vc14_0,那將工作得很好。 軟件包 vs2015_runtime 在 linux 中根本不可用。 運行時不會返回任何內容:

conda search vs2015_runtime". 

如何在跨平台工作時以可移植的方式導出我的虛擬環境,以便所有軟件包也可以安裝在 Linux 中?

這是我的environment.yml的內容。

看起來您正在獲取使用 Microsoft Visual C/C++ 編譯器(名稱的vc部分)編譯的包。 這些軟件包與您嘗試做的 Linux 的 ABI 不兼容。 只需針對非 Windows 特定的軟件包即可。

導出環境時,請使用 --from-history 選項。

conda env export --from-history > environment.yml

它只會導出您明確安裝的庫,而不是依賴項:

通常,某些依賴項是特定於平台的,例如上面的 Visual Studio 依賴項。 此外,默認的 conda env 導出將特定於平台的信息放入庫中。

它將避免很多麻煩並使您的導出文件多平台。

額外提示:始終安裝引用其版本號的庫(例如:conda install pandas=1.2.1)。 如果沒有版本,上面的命令將導出沒有版本的依賴項,破壞您的環境。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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