1. 程式人生 > >Anaconda虛擬環境跨平臺遷移和直接整體遷移(不用.yml檔案和重新下載package)

Anaconda虛擬環境跨平臺遷移和直接整體遷移(不用.yml檔案和重新下載package)

首先使用的虛擬環境的遷移方法是使用.yml檔案來實現。
試了把Linux平臺上的Ananconda 虛擬環境遷移到mac osx平臺,會報錯,找不到可安裝的包,因為不同平臺的包是不一樣的。

那麼,可以修改python包的下載映象地址(channel)為支援osx的channel是不是可以呢?

經過測試,是行不通的!
原來,根本原因是python在Windows,Linux,osx不同的作業系統下的包是不同的,每個版本號後面的一串字元就類似於手機的序列號,就是指示用於不同環境下的。
這裡寫圖片描述

又有一個想法,可否把後面的序列號去掉,而只保留版本號來讓系統自動去選擇適合本系統的包呢?
這裡寫圖片描述

果然,當我把指示的不能找到的包的版本後面的序列號去掉後,再來執行,提示找不到的包就只剩下兩個了。

再試著把最後找不到的兩個包的版本去掉。
這裡寫圖片描述

把這兩個包也去掉,最後成功安裝了這個環境
這裡寫圖片描述

所以,在不同環境下也是可以實現Anaconda的虛擬環境的遷移的。但是某些指定系統下才有的包是無法遷移過來的。

這種使用.yml的配置檔案來遷移的方法還是不理想,最好是直接把整個環境檔案拷貝貼上最好,這樣既快捷,又適用於無法聯網或網速不佳的新的環境。當然,只能是相同平臺間的遷移。
所以在Linux下進行了測試。

經測試,直接把一臺Linux機上的Anaconda envs下的某一個環境整體遷移到另一臺Linux機上的Anaconda envs下可以成功啟動該環境。
來源:
這裡寫圖片描述
複製到新的機器的Anaconda envs路徑下:
這裡寫圖片描述

另外需注意:
1)這裡我安裝的兩個anaconda是同版本的,不同版本的還沒有測試
2)新環境需要使用如下命令啟動:
source activate <新環境的名稱>

本來先使用了conda activate <新環境的名稱> ,但是提示錯誤。
這裡寫圖片描述
使用了上面的命令後可以啟用新環境。
然後再來用這條命令卻可以了,比較奇怪,懷疑是預設對於新環境總是要先用source啟用一下?
這裡寫圖片描述