【Pytorch】Conda環境pack打包遷移報錯處理

文章目錄

  • 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問題

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/45171.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/45171.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/45171.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

14 - matlab m_map地學繪圖工具基礎函數 - 一些數據轉換函數(一)

14 - matlab m_map地學繪圖工具基礎函數 - 一些數據轉換函數(一) 0. 引言1. 關于m_ll2xy和m_xy2ll2. 關于m_lldist3. 關于m_xydist4 關于m_fdist5 關于m_idist6. 總結 0. 引言 通過前面篇節已經將m_map繪圖工具中大多繪圖有關的函數進行過介紹&#xff0…

Nuxt3封裝網絡請求 useFetch $fetch

前言: 剛接觸、搭建Nuxt3項目的過程還是有點懵的,有種摸石頭過河的感覺,對于網絡請求這塊,與之前的Vue3項目有所區別,在Vue項目通常使用axios這個庫進行網絡請求,但在Nuxt項目并不推薦,因為有內…

RK3568平臺(顯示篇)主屏副屏配置

一.主屏副屏配置 目前在RK3568平臺上有兩路HDMIOUT輸出,分別輸出到兩個屏幕上,一路配置為主屏,一路配置為副屏。 硬件原理圖: &hdmi0_in_vp2 {status "okay"; };&hdmi1_in_vp0 {status "okay"; }…

【JAVA入門】Day15 - 接口

【JAVA入門】Day15 - 接口 文章目錄 【JAVA入門】Day15 - 接口一、接口是對“行為”的抽象二、接口的定義和使用三、接口中成員的特點四、接口和類之間的關系五、接口中新增的方法5.1 JDK8開始接口中新增的方法5.1.1 接口中的默認方法5.1.2 接口中的靜態方法 5.2 JDK9 開始接口…

Pandas實戰指南:any()函數深度解析與高效應用

Pandas實戰指南:any()函數深度解析與高效應用 引言 在數據分析和處理過程中,經常需要快速檢查數據集中是否存在滿足特定條件的元素。Pandas庫中的any()函數正是這樣一個強大的工具,它可以幫助我們沿著指定的軸檢查是否至少有一個元素滿足某…

Transformer重要論文與書籍 - Transformer教程

近年來,人工智能領域中的Transformer模型無疑成為了炙手可熱的研究對象。從自然語言處理(NLP)到計算機視覺,Transformer展現出了前所未有的強大能力。今天,我們將探討Tra在當今的人工智能和機器學習領域,Tr…

路由守衛中使用next()跳轉到指定路徑時會無限循環

路由守衛鉤子介紹 const router new VueRouter({ ... }) // 導航路由變化時觸發路由守衛鉤子 router.beforeEach((to, from, next) > {// ... }) to: Route: 即將要進入的目標路由對象(到哪去)from: Route: 當前導航正要離開的路由(從哪來)next: Function(必須&#xff0…

axios使用sm2加密數據后請求參數多了雙引號解決方法

axios使用sm2加密數據后請求參數多了雙引號解決 背景問題描述解決過程 背景 因項目安全要求,需對傳給后端的入參加密,將請求參數加密后再傳給后端 前期將axios降低到1.6.7后解決了問題,但最近axios有漏洞,安全要求對版本升級&…

從零開始[進階版]深入學習圖像分類:使用Python和TensorFlow

引言 圖像分類是計算機視覺中的一個核心任務,廣泛應用于人臉識別、自動駕駛、醫療影像分析等領域。在本篇文章中,我們將深入探討圖像分類的原理和實現,使用Python和TensorFlow搭建一個完整的圖像分類系統。本文不僅適合初學者,也…

【Qt 初識 Test】用圖形化和代碼的方式實現簡單的Qt程序

文章目錄 1. 通過圖形化的方式實現🍎2. 通過代碼的方式實現 1. 通過圖形化的方式實現🍎 在界面創建出一個控件,顯示 hello world,通過拖拽的方式實現; widget.ui文件如下:🔍 生成的 ui_widget.…

生物環保技術有哪些缺點或者局限性呢

生物環保技術,作為一種利用生物學原理和技術來處理環境污染的方法,雖然具有綠色環保、高效節能等優點,但也存在一些缺點和局限性。以下是對這些缺點和局限性的詳細分析: 一、受環境因素影響大 生物環保技術的效果往往受到環境因…

數據結構第18節 散列表 - 應用

散列表(Hash Table),也被稱為哈希表,是一種數據結構,它通過使用哈希函數將鍵映射到數組的某個位置來實現快速查找。散列表通常提供平均時間復雜度為O(1)的查找、插入和刪除操作,這使得它們在處理大量數據時…

【mybatis】mybatisX插件概述

一、主要功能 智能補全與提示 MyBatisX 可以智能地提示和補全 SQL 語句中的關鍵字、表名、列名等信息,從而顯著提高開發效率。代碼生成器 雖然 MyBatisX 本身可能不直接提供一個完整的、獨立的代碼生成器,但它可能集成了或支持與其他代碼生成工具&#…

鹵味江湖中,周黑鴨究竟該抓住什么賽點?

近年來,鹵味江湖的決斗從未停止。 隨著休閑鹵味、佐餐鹵味等細分賽道逐漸形成,“鹵味三巨頭”(周黑鴨、絕味食品、煌上煌)的牌桌上有了更多新對手,賽道變擠了,“周黑鴨們”也到了轉型關鍵期。 這個夏天&a…

MySQL字符串相關數據處理函數

目錄 1. 轉大小寫 2. 截取字符串 sunstr 3. 獲取字符長度 4. 字符串拼接 concat 5. 去掉空白 trim 1. 轉大小寫 轉大寫:upper() 轉小寫:lower() 雖然MySQL不嚴格區分大小寫,但是我們還是需要掌握這種大小寫的操作以方便學習其他…

python的入門知識(下)

目錄 學習內容數字字符串、列表和元組映射和集合類型 學習內容 數字 長整型(Long Integer): 在Python中,整數沒有大小限制,但是可以用大寫或小寫的L來表示長整型,盡管這不是Python 3推薦的做法。 復數(Co…

Nessus相關

tenable 1 安裝nessus scanner 1 )安裝nessus scanner: 方法一 curl -H X-Key: xxxxx https://cloud.tenable.com/install/scanner?namescanner-name&groupsscanner-group | bash方法二: **# for ubuntu, its https://www.tenable.com/downloads/api/v1/pu…

【JavaScript腳本宇宙】JavaScript 庫概覽:數字、貨幣值、日期時間處理一網打盡

簡化數據處理:掌握六大 JavaScript 庫的核心功能和使用技巧 前言 在現代的軟件開發中,處理數字、貨幣和日期時間是非常常見的需求。為了簡化這些任務,開發人員可以使用各種 JavaScript 庫來輕松地進行數字格式化、貨幣計算和日期時間操作。…

Google登錄時人機身份驗證的圖片類型和通過的經驗建議,以及一些常見問題

很多朋友在登錄谷歌賬號時,都遇到過要求人機身份驗證的步驟,而且有一些時候人機身份驗證這個步驟很讓人糾結,甚至壓根就出不來具體的驗證圖片,或者花了十幾分鐘、幾十分鐘都過不去。 所以今天GG賬號服務就來為您解析一下谷歌登錄…

初學SpringMVC之接收請求參數及數據回顯

pom.xml 文件導入 lombok 的依賴 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.34</version></dependency> Controller 表示這是一個控制器 RequestParam 表示從前端接收…