2016-08-23 77 views
6

在我的Windows 10的機器,我使用下面的命令創建的虛擬環境:康達(Python)的虛擬環境是不可移植從Windows到Linux

>conda env export > environment.yml 

我試圖重新創建使用YML虛擬環境文件在Windows系統上,它工作得很好。然後我轉移environment.yml到我的Linux機器(Ubuntu的16.04.1)使用相同版本的暢達和python的跑在終端如下:

$ conda env create -f environment.yml 

我得到以下錯誤:

Using Anaconda Cloud api site https://api.anaconda.org
Fetching package metadata .......
Solving package specifications: .
Error: Packages missing in current linux-64 channels:
- 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
- tk 8.5.18 vc14_0
- vs2015_runtime 14.0.25123 0
- zlib 1.2.8 vc14_3

大多數這些軟件包都可以在conda的linux repo中找到,但是具有不同的風格。例如,如果我從包含yml文件中的jpeg包的行中刪除vc14_0,那將工作得很好。該軟件包vs2015_runtime在Linux中根本不可用。當您運行沒有得到返回:

conda search vs2015_runtime". 

工作跨平臺當一個可移植的方式如何導出我的虛擬環境,讓所有的包可以安裝在Linux的呢?

這是我的environment.yml的內容。

+1

關於這個問題,有一個[ticket](https://github.com/conda/conda/issues/4545),似乎Conda環境在將來的版本中將變得更加便攜。我們希望這樣做,因爲它很煩人 – Overdrivr

+0

這個問題已經解決了,我即將嘗試在兩個操作系統上工作,並希望在每個操作系統中都使用虛擬環境? – neuronet

回答

2

看起來您正在獲取使用Microsoft Visual C/C++編譯器(名稱的vc部分)編譯的軟件包。 這些軟件包不會像Linux那樣與ABI兼容。只需定位不特定於Windows的軟件包即可。

+0

當我在Windows中運行「conda search libpng」時,我收到了一堆條目,包括以下兩個條目。 ............ ** libpng - 1.6.17 - 0默認值** ........................ .................................................. ...................................... ** libpng - * 1.6.22 - vc14_0默認值[vc14] ** ........................................ .. .................. .................... ........ .... 我應該安裝第一個嗎?我如何告訴conda將所有我的默認軟件包更改爲不是「vc」特定的軟件包?我運行「conda update libpng」。 – hANI

+0

是的,你應該安裝第一個。不知道如何自動切換所有的軟件包,我對conda沒有經驗。您可以卸載'vc'軟件包,安裝相應的'非vc'軟件包,然後創建.yml文件。 – Av4t4r