Conda虛擬環(huán)境的復(fù)制和遷移的四種方法實(shí)現(xiàn)
在本機(jī)復(fù)制Conda虛擬環(huán)境
conda create --name 新環(huán)境名 --clone 舊環(huán)境名
相同操作系統(tǒng)之間復(fù)制環(huán)境
方法一:requirements.txt
這個(gè)方法不推薦,因?yàn)橹粫?huì)導(dǎo)出你使用pip安裝的依賴包,不會(huì)導(dǎo)出虛擬環(huán)境所依賴的包,并不適用于虛擬環(huán)境的遷移的應(yīng)用場(chǎng)景。
事實(shí)上,此方法比較適用于,已經(jīng)明確知道依賴哪些包,我們只需要package信息的情況,如寫項(xiàng)目文檔,告訴別人運(yùn)行我這個(gè)系統(tǒng)必須安裝哪些依賴包。而忽略虛擬環(huán)境本身的依賴環(huán)境。
pip freeze > requirements.txt # 生成requirements.txt pip install -r requirements.txt # 從requirements.txt安裝依賴
方法二 : Environment.yml
跨平臺(tái)和操作系統(tǒng)共享項(xiàng)目環(huán)境也可以使用 -export 選項(xiàng)生成 environment.yml 文件來(lái)完成。規(guī)范列表和 environment.yml 文件之間的區(qū)別在于 environment.yml 文件不是特定于操作系統(tǒng)的,而是使用 YAML 格式化的。只列出包名,conda根據(jù)包名搭建環(huán)境。另一個(gè)區(qū)別是 -export 還包括使用 pip 安裝的包,而 spec 列表不包括。要導(dǎo)出 environment.yml 文件:
conda env export environment.yml
- 請(qǐng)注意,如果路徑中已有 environment.yml 文件,conda 將覆蓋該文件。創(chuàng)建環(huán)境:
conda env create -f environment.yml
方法三:Conda Pack
Conda-pack 是一個(gè)命令行工具,用于打包 conda 環(huán)境,其中包括環(huán)境中安裝的包的所有二進(jìn)制文件。此法支持?jǐn)嗑W(wǎng)環(huán)境下使用。Environment.yml 是從python依賴包各自的存儲(chǔ)庫(kù)中下載包來(lái)創(chuàng)建環(huán)境,缺點(diǎn)當(dāng)然是網(wǎng)速慢、容易下載失敗等等。此法就沒有這個(gè)問題。
請(qǐng)記住,conda-pack 是特定于平臺(tái)和操作系統(tǒng)的,目標(biāo)計(jì)算機(jī)必須具有與源計(jì)算機(jī)相同的平臺(tái)和操作系統(tǒng)。
要安裝 conda-pack,請(qǐng)確保您處于 root 或 base 環(huán)境中,以便它在子環(huán)境中可用。 Conda-pack 可在 conda-forge 或 PyPI 獲得。
conda-forge:
conda install -c conda-forge conda-pack
PyPI:
pip install conda-pack
打包環(huán)境:
# Pack environment my_env into my_env.tar.gz $ conda pack -n my_env # Pack environment my_env into out_name.tar.gz $ conda pack -n my_env -o out_name.tar.gz # Pack environment located at an explicit path into my_env.tar.gz $ conda pack -p /explicit/path/to/my_env
復(fù)制環(huán)境到其他電腦上:
# Unpack environment into directory `my_env` $ mkdir -p my_env $ tar -xzf my_env.tar.gz -C my_env # Use Python without activating or fixing the prefixes. Most Python # libraries will work fine, but things that require prefix cleanups # will fail. $ ./my_env/bin/python # Activate the environment. This adds `my_env/bin` to your path $ source my_env/bin/activate # Run Python from in the environment (my_env) $ python # Cleanup prefixes from in the active environment. # Note that this command can also be run without activating the environment # as long as some version of Python is already installed on the machine. (my_env) $ conda-unpack
方法四:直接復(fù)制envs目錄下的虛擬環(huán)境文件夾
在斷網(wǎng)環(huán)境下,我們也可以直接從源電腦(以下統(tǒng)稱為src電腦)上直接將虛擬環(huán)境整個(gè)復(fù)制到目標(biāo)電腦(以下統(tǒng)稱為target電腦)上。前提是target計(jì)算機(jī)必須具有與src計(jì)算機(jī)相同的平臺(tái)和操作系統(tǒng)。
1、target電腦上安裝相同版本的Anaconda。
2、從src電腦把envs文件夾中需要復(fù)制的虛擬環(huán)境文件夾復(fù)制到target電腦上,位置隨便放。
我們可以通過(guò)以下命令來(lái)查看src電腦上虛擬環(huán)境文件夾的存放路徑:
conda env list

已上圖為例,E:\ProgramData\Anaconda\envs\new_name 就是虛擬環(huán)境new_name的存儲(chǔ)路徑。我們將它直接復(fù)制到target電腦上即可。

3、在target電腦上,進(jìn)入conda命令行,使用如下命令:
conda config --add envs_dirs %復(fù)制到target電腦上的envs路徑%
注意: 這里的路徑是目標(biāo)虛擬環(huán)境文件夾的上級(jí)目錄!
舉個(gè)例子:
我將上圖中的new_name復(fù)制到了target電腦上,并重命名為:env_pybd。路徑為G:\anoconda_envs\env_pybd

那么我應(yīng)該用conda執(zhí)行命令:
conda config --add envs_dirs G:\anoconda_envs\
運(yùn)行成功后,會(huì)往 C:\user%當(dāng)前用戶名%\.condarc 里面添加一條envs_dirs記錄,如下圖所示:

再運(yùn)行
conda env list
就可以看到,我們已經(jīng)復(fù)制成功了:

到此這篇關(guān)于Conda虛擬環(huán)境的復(fù)制和遷移的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Conda虛擬環(huán)境復(fù)制和遷移內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
封裝Detours用于Python中x64函數(shù)hook詳解
Detours是微軟發(fā)布的一個(gè)API hook框架,同時(shí)支持x86和x64,看文檔說(shuō)也支持ARM和ARM64的Windows,這篇文章主要介紹了封裝Detours用于Python中x64函數(shù)hook,需要的朋友可以參考下2023-12-12
Python使用memory_profiler診斷Flask應(yīng)用內(nèi)存問題的方法技巧
在開發(fā) Python Web 應(yīng)用,特別是使用 Flask 框架時(shí),內(nèi)存泄漏和不合理的內(nèi)存使用是常見的性能瓶頸,這些問題如果不及早發(fā)現(xiàn)和解決,輕則導(dǎo)致應(yīng)用響應(yīng)變慢,重則引發(fā)服務(wù)器崩潰,所以本文給大家介紹了Python使用memory_profiler診斷Flask應(yīng)用內(nèi)存問題的方法技巧2025-07-07
PyQt+socket實(shí)現(xiàn)遠(yuǎn)程操作服務(wù)器的方法示例
這篇文章主要介紹了PyQt+socket實(shí)現(xiàn)遠(yuǎn)程操作服務(wù)器的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python+OpenCV圖片局部區(qū)域像素值處理詳解
這篇文章主要為大家詳細(xì)介紹了Python+OpenCV圖片局部區(qū)域像素值處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
Python虛擬機(jī)中描述器的王炸應(yīng)用分享
本篇文章給大家介紹一下描述器在?python?語(yǔ)言當(dāng)中有哪些應(yīng)用,主要介紹如何使用?python?語(yǔ)言實(shí)現(xiàn)?python?內(nèi)置的?proterty?、staticmethod?和?class?method,需要的可以參考一下2023-05-05
如何利用python實(shí)現(xiàn)Simhash算法
這篇文章主要介紹了如何利用python實(shí)現(xiàn)Simhash算法,文章基于python的相關(guān)資料展開Simhash算法的詳細(xì)介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-06-06

