文章目錄
- Anaconda虛擬環境打包
- 一、源電腦的環境打包
- 1.安裝conda-pack工具
- 2.確定環境
- 3.打包環境
- 4.將打包環境拷貝到U盤
- 二、環境遷移到目標電腦上
- 三、異常處理
- pip install -e. 導致無法pack→忽略
- 管理的文件已經被刪除或者被覆蓋→壓縮成tar
- 注意
- 重新激活環境
Anaconda虛擬環境打包
實驗在本機上驗證成功,需要網高級設備上遷移,單張4090D,跑一個128k多模態大模型在一個數據集上推理加評測都花了兩個半小時,還是太費時間了,重任亟需交給8A100機。
從源電腦中遷移anaconda的環境到目標電腦,首先兩個電腦都安裝了anaconda才行,在此基礎上。
一、源電腦的環境打包
使用Anaconda Prompt操作
1.安裝conda-pack工具
conda install conda-pack
2.確定環境
conda env list
找到你想要打包環境名。比如我的環境名是VLM
3.打包環境
conda pack -n VLM -o VLM.tar.gz
4.將打包環境拷貝到U盤
Windows環境打包在當前目錄,如XX為用戶名,路徑為
C:/Users/XX/VLM.tar.gz
Linux同理
二、環境遷移到目標電腦上
①方法一
1.用Anaconda Prompt創建新環境,比如新環境是py310:
conda create -n py310 python=3.10
2.將U盤中的打包環境,拷貝在目標電腦的用戶名目錄:
C:/Users/XX/Py36.tar.gz
3.用Anaconda Prompt將打包環境,解壓到新環境路徑下:
tar -zxvf Py36.tar.gz -C E:\anaconda3\envs\py36\
4.激活新環境
conda activate py310
注意:如果失敗的話,試一下方法二:
②方法二
1.找到目標電腦的環境文件夾
環境的路徑為anaconda的所在目錄下的envs文件夾,如我的為:E:\anaconda3\envs,以下步驟都在這個路徑下進行操作。
2.將U盤中的打包環境,拷貝在環境文件夾envs內。
3.在環境路徑下使用cmd命令行,新建文件夾,命名為py36:
mkdir py36
或者手動新建文件夾
4.使用cmd命令行,將打包環境解壓到新環境中
tar -zxvf Py36.tar.gz -C ./py36
三、異常處理
pip install -e. 導致無法pack→忽略
報錯如下
Collecting packages...
CondaPackError: Cannot pack an environment with editable packages
installed (e.g. from `python setup.py develop` or`pip install -e`). Editable packages found:- /home/xxx
改用下面方式
conda pack -n VLM -o VLM.tar.gz --ignore-editable-packages
解壓縮使用
mkdir ~/ananconda/envs/pcdet-tmp
tar -xf pcdet.tar.gz -C ~/ananconda/envs/pcdet-tmp
cd ~/ananconda/envs/pcdet-tmp
source ./bin/activate
管理的文件已經被刪除或者被覆蓋→壓縮成tar
CondaPackError: Files managed by conda were found to have been deleted/overwritten in the following packages: - charset-normalizer 2.0.4:- xxxx
This is usually due to `pip` uninstalling or clobbering conda managed files,
resulting in an inconsistent environment. Please check your environment for
conda/pip conflicts using `conda list`, and fix the environment by ensuring
only one version of each package is installed (conda preferred).
解決方案嘗試過利用WSL優勢直接在Windows下對anaconda中環境env進行打包,然而報出巨量的依賴錯誤和命名錯誤
最后乖乖收手去Linux系統下打包壓縮嘗試是否可行
在Linux中,可以使用tar命令將文件或文件夾壓縮為.tar.gz格式。
tar 是用于打包文件的命令。
-c 表示創建一個新的歸檔文件。
-z 表示使用gzip壓縮。
-v 表示在歸檔時顯示詳細信息。
-f 后面跟著的是歸檔文件的名稱。
例如,想要壓縮anaconda中env下的名為VLM的文件夾,可以使用以下命令:
tar -czvf VLM.tar.gz VLM
注意
在Linux里去看位置,anaconda是不顯示完整文件目錄的,會直接不顯示有env文件夾,但是可以直接cd 進env去看
如果想壓縮單個文件,比如myfile.txt,可以使用:
tar -czvf myfile.tar.gz myfile.txt
這些命令將在當前目錄下創建.tar.gz文件,可以在需要的時候更改文件路徑或者指定輸出目錄。
壓縮成功
重新激活環境
3.第三步:激活環境
對于tar壓縮來講解壓執行
tar -xzvf VLM.tar.gz
如果是.zip 拷貝到另外一個系統上并解壓到目錄下/xxxx/anaconda/envs/則為
unzip -d /xxxx/anaconda/envs/ pyenv.zip
注意!打包的虛擬環境記錄的是源環境的,新系統上的anaconda安裝路徑可能和源環境的不一樣,比如源環境是/xxxx/anaconda2023/,新系統上是/xxxx/anaconda/,此時需要先在新系統上新建一個和源環境anaconda安裝路徑一樣的空目錄,例如原路徑\wsl.localhost\Ubuntu\home\test\anaconda3\envs\VLM的
mkdir /xxxx/anaconda3/envs/
然后再建立軟鏈
ln -s /xxxx/anaconda/envs/pyenv /xxxx/anaconda3/envs/
將空目錄指向 實際anaconda路徑
然后激活環境 source activate /xxxx/anaconda/envs/VLM
希望能順順利利完成!
嘛,如果對您有幫助的話就開心的復制吧,整理不易轉載請注明qwq!
如果有更好的建議或意見歡迎補充!
我是亓云鵬(亓Qí),努力與大家一同分享算法的快樂!
每博一圖(1/1)↓
Reference:
conda-pack遷移虛擬環境
離線環境conda虛擬環境備份遷移–conda pack問題