問題描述:
在一臺Ubuntu電腦上完全復刻在Windows中通過conda創建的環境。
導出環境
在Windows機器上,需要導出當前conda環境的配置。這將生成一個environment.yml
文件,其中包含所有已安裝的包和版本信息。
打開Anaconda Prompt(或任何你使用的命令行界面),然后運行以下命令來導出環境:
conda env export --name <env_name> > environment.yml
這里 <env_name>
是在Windows上創建的conda環境的名字。
復制 environment.yml
文件
將生成的environment.yml
文件復制到目標ubuntu機器上。可以使用USB驅動器、網絡共享或者通過SSH傳輸文件。
在Ubuntu上安裝conda
如果ubuntu上還沒有安裝Miniconda,需要先安裝,可以從Miniconda的官方網頁下載適合Linux的安裝腳本,或者從清華鏡像等其他可信的鏡像站點下載。然后運行安裝腳本并按照提示操作。
創建新環境
在Ubuntu上,使用environment.yml
文件來創建與Windows上相同的環境。在終端中運行以下命令:
conda env create -f environment.yml
這將讀取environment.yml
文件并創建一個具有相同包和版本的新環境。
激活新環境
創建完環境后,你需要激活它才能開始使用:
conda activate <new_env_name>
這里 <new_env_name>
是在Ubuntu上創建的環境名字,通常這會和Windows上的環境名字相同。
注意事項
-
確保在兩臺機器上使用的Miniconda版本盡量一致,以避免潛在的兼容性問題。
-
某些包可能在不同的操作系統上有不同的構建,因此在Ubuntu上創建環境時可能會遇到一些差異或錯誤。如果出現這種情況,需要手動解決這些依賴關系。如下:
-
(base) root@xxxxxxxxxxxxxxxxx:~/Desktop# conda env create -f environment.yml Collecting package metadata (repodata.json): done Solving environment: failedResolvePackageNotFound:certifi==2021.5.30=py36haa95532_0 vc==14.2=h2eaa2aa_1 pip==21.2.2=py36haa95532_0 setuptools==58.0.4=py36haa95532_0 vs2015_runtime==14.29.30133=h43f2093_3 python==3.6.13=h3758d61_0 wincertstore==0.2=py36h7fe50ca_0 sqlite==3.45.3=h2bbff1b_0
-
修改
environment.yml
文件打開
environment.yml
文件,移除所有只在Windows上存在的包和版本號,例如vc
,vs2015_runtime
等。同時,對于Python和其他基礎庫,如sqlite
,確保它們沒有特定于Windows的構建標簽。原本的條目可能類似于:
dependencies:- python=3.6.13=h3758d61_0- sqlite=3.45.3=h2bbff1b_0
應該修改為:
dependencies:- python=3.6- sqlite
這樣Conda將在解決依賴關系時選擇適用于Linux的默認構建。
添加 Linux 兼容的包
對于像
certifi
、pip
、setuptools
和wincertstore
這樣的包,確保它們沒有Windows特有的構建標簽。在environment.yml
文件中,只需要指定包名即可,例如:dependencies:- certifi- pip- setuptools
嘗試再次創建環境
保存并關閉
environment.yml
文件。再次運行:conda env create -f environment.yml
如果仍有包無法找到,檢查它們是否真的有Linux版本,或者是否有替代的包可以滿足相同的功能需求。
-
-
-
如果
environment.yml
文件中的某些包在Ubuntu上不可用,需要找到合適的替代品或者從源代碼編譯。