Pytorch?Conda環(huán)境pack打包遷移報錯的處理方案
Anaconda虛擬環(huán)境打包
實驗在本機上驗證成功,需要網(wǎng)高級設(shè)備上遷移,單張4090D,跑一個128k多模態(tài)大模型在一個數(shù)據(jù)集上推理加評測都花了兩個半小時,還是太費時間了,重任亟需交給8A100機。

從源電腦中遷移anaconda的環(huán)境到目標電腦,首先兩個電腦都安裝了anaconda才行,在此基礎(chǔ)上。
一、源電腦的環(huán)境打包
使用Anaconda Prompt操作
1.安裝conda-pack工具
conda install conda-pack

2.確定環(huán)境
conda env list

找到你想要打包環(huán)境名。比如我的環(huán)境名是VLM
3.打包環(huán)境
conda pack -n VLM -o VLM.tar.gz
4.將打包環(huán)境拷貝到U盤
Windows環(huán)境打包在當前目錄,如XX為用戶名,路徑為
C:/Users/XX/VLM.tar.gz
Linux同理
二、環(huán)境遷移到目標電腦上
①方法一
1.用Anaconda Prompt創(chuàng)建新環(huán)境,比如新環(huán)境是py310:
conda create -n py310 python=3.10
2.將U盤中的打包環(huán)境,拷貝在目標電腦的用戶名目錄:
C:/Users/XX/Py36.tar.gz
3.用Anaconda Prompt將打包環(huán)境,解壓到新環(huán)境路徑下:
tar -zxvf Py36.tar.gz -C E:\anaconda3\envs\py36\
4.激活新環(huán)境
conda activate py310
注意:如果失敗的話,試一下方法二:
②方法二
1.找到目標電腦的環(huán)境文件夾
環(huán)境的路徑為anaconda的所在目錄下的envs文件夾,如我的為:E:\anaconda3\envs,以下步驟都在這個路徑下進行操作。
2.將U盤中的打包環(huán)境,拷貝在環(huán)境文件夾envs內(nèi)。
3.在環(huán)境路徑下使用cmd命令行,新建文件夾,命名為py36:
mkdir py36
或者手動新建文件夾
4.使用cmd命令行,將打包環(huán)境解壓到新環(huán)境中
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
管理的文件已經(jīng)被刪除或者被覆蓋→壓縮成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優(yōu)勢直接在Windows下對anaconda中環(huán)境env進行打包,然而報出巨量的依賴錯誤和命名錯誤

最后乖乖收手去Linux系統(tǒng)下打包壓縮嘗試是否可行
在Linux中,可以使用tar命令將文件或文件夾壓縮為.tar.gz格式。
tar 是用于打包文件的命令。
-c 表示創(chuàng)建一個新的歸檔文件。
-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
這些命令將在當前目錄下創(chuàng)建.tar.gz文件,可以在需要的時候更改文件路徑或者指定輸出目錄。

壓縮成功
重新激活環(huán)境
3.第三步:激活環(huán)境
對于tar壓縮來講解壓執(zhí)行
tar -xzvf VLM.tar.gz
如果是.zip 拷貝到另外一個系統(tǒng)上并解壓到目錄下/xxxx/anaconda/envs/則為
unzip -d /xxxx/anaconda/envs/ pyenv.zip
注意!打包的虛擬環(huán)境記錄的是源環(huán)境的,新系統(tǒng)上的anaconda安裝路徑可能和源環(huán)境的不一樣,比如源環(huán)境是/xxxx/anaconda2023/,新系統(tǒng)上是/xxxx/anaconda/,此時需要先在新系統(tǒng)上新建一個和源環(huán)境anaconda安裝路徑一樣的空目錄,例如原路徑\wsl.localhost\Ubuntu\home\test\anaconda3\envs\VLM的
mkdir /xxxx/anaconda3/envs/
然后再建立軟鏈
ln -s /xxxx/anaconda/envs/pyenv /xxxx/anaconda3/envs/
將空目錄指向 實際anaconda路徑
然后激活環(huán)境 source activate /xxxx/anaconda/envs/VLM
希望能順順利利完成!
以上就是Pytorch Conda環(huán)境pack打包遷移報錯的處理方案的詳細內(nèi)容,更多關(guān)于Conda pack打包遷移報錯的資料請關(guān)注腳本之家其它相關(guān)文章!
- PyTorch使用tensorboard的SummaryWriter報錯問題解決方案
- Pytorch backward報錯2次訪問計算圖需要retain_graph=True的情況詳解
- 分析PyTorch?Dataloader報錯ValueError:num_samples的另一種可能原因
- pytorch報錯問題:ValueError: num_samples should be a positive integer value, but got num_samples=0
- 解決遇到:PytorchStreamReader failed reading zip archive:failed finding central錯誤問題
相關(guān)文章
Python中實現(xiàn) xls 文件轉(zhuǎn) xlsx的4種方法(示例詳解)
在 Python 中,可以采用 pandas、pyexcel、win32com 和 xls2xlsx 這四個模塊,實現(xiàn) xls 轉(zhuǎn) xlsx 格式,本文以 Excel 示例文件test_Excel.xls 為例結(jié)合示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-06-06
Win10?Anaconda?新建環(huán)境安裝python-pcl的步驟
這篇文章主要介紹了Win10?Anaconda?新建環(huán)境安裝python-pcl的方法,至于VS環(huán)境下安裝C++?版本的pcl也可以按照此文提供的步驟安裝實現(xiàn),需要的朋友可以參考下2022-04-04
Python的Django框架中if標簽的相關(guān)使用
這篇文章主要介紹了Python的Django框架中if標簽的相關(guān)使用,是Django框架使用中的基礎(chǔ)知識,需要的朋友可以參考下2015-07-07
python使用win32com在百度空間插入html元素示例
這篇文章主要介紹了python使用win32com在百度空間插入html元素的示例,大家參考使用吧2014-02-02

