問題:因為新的服務器A不能聯網,導致離線pip install包耗時耗力,舊的服務器B中的Anaconda和A中是同一個版本,有現成的python環境,并且服務器B可以聯網,現想將B中的環境,直接移植到A中使用。
解決步驟:
1. 在服務器B上查看要移植python環境名稱:本文以“pyscenic”為例
conda info --envs
2. 打包環境
在服務器B上安裝conda-pack(若已安裝,請忽略):
conda install -c conda-forge conda-pack
打包環境:
conda pack -n pyscenic -o pyscenic.tar.gz
3. 將打包文件傳輸到服務器A上:scp或xftp都行
4. 在服務器A上操作
4.1 解壓環境:在服務器A上,將打包文件解壓到目標目錄:
mkdir -p /path/to/pyscenic
tar -xzf myenv.tar.gz -C /path/to/pyscenic
4.2 激活環境:
source /path/to/env/bin/activate
4.3 清理(可選)
/path/to/pyscenic/bin/conda-unpack
4.4 驗證環境:如果輸出路徑指向解壓后的環境就成功。
python -c "import sys; print(sys.executable)"
注:conda-pack不支持直接打包base?環境(即默認的根環境)。這是因為base環境是Conda的默認環境,包含Conda 自身和許多核心工具,直接打包可能會導致路徑沖突或其他問題。若非要打包,解決方式是克隆一個新環境,再打包:
conda create -n base_clone --clone base
conda pack -n base_clone -o base_clone.tar.gz