Conda虛擬環(huán)境的復(fù)制和遷移過(guò)程
Conda虛擬環(huán)境的復(fù)制和遷移
在本機(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安裝的依賴(lài)包,不會(huì)導(dǎo)出虛擬環(huán)境所依賴(lài)的包,并不適用于虛擬環(huán)境的遷移的應(yīng)用場(chǎng)景。
事實(shí)上,此方法比較適用于,已經(jīng)明確知道依賴(lài)哪些包,我們只需要package信息的情況,如寫(xiě)項(xiàng)目文檔,告訴別人運(yùn)行我這個(gè)系統(tǒng)必須安裝哪些依賴(lài)包。而忽略虛擬環(huán)境本身的依賴(lài)環(huán)境。
pip freeze > requirements.txt # 生成requirements.txt pip install -r requirements.txt # 從requirements.txt安裝依賴(lài)
方法二 : 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依賴(lài)包各自的存儲(chǔ)庫(kù)中下載包來(lái)創(chuàng)建環(huán)境,缺點(diǎn)當(dāng)然是網(wǎng)速慢、容易下載失敗等等。此法就沒(méi)有這個(gè)問(wèn)題。
請(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)稱(chēng)為src電腦)上直接將虛擬環(huán)境整個(gè)復(fù)制到目標(biāo)電腦(以下統(tǒng)稱(chē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)前用戶(hù)名%\.condarc 里面添加一條envs_dirs記錄,如下圖所示:

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

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python股票開(kāi)源庫(kù)akshare的具體使用
AKShare是一個(gè)開(kāi)源財(cái)經(jīng)數(shù)據(jù)接口庫(kù),本文主要介紹了Python股票開(kāi)源庫(kù)akshare的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04
使用Python實(shí)現(xiàn)獲取屏幕像素顏色值
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)獲取屏幕像素顏色值,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-06-06
使用Python腳本批量轉(zhuǎn)換網(wǎng)頁(yè)文件編碼為UTF-8
文章介紹了一個(gè)自動(dòng)化腳本,用于將通過(guò)瀏覽器另存為功能保存的網(wǎng)頁(yè)文件從GBK轉(zhuǎn)換為UTF-8編碼,以解決中文亂碼問(wèn)題,并保持源目錄結(jié)構(gòu),該腳本支持文本和二進(jìn)制文件的處理,易于使用和擴(kuò)展,需要的朋友可以參考下2026-01-01
python sqlalchemy動(dòng)態(tài)修改tablename兩種實(shí)現(xiàn)方式
這篇文章主要介紹了python sqlalchemy動(dòng)態(tài)修改tablename兩種實(shí)現(xiàn)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-03-03
pytorch-autograde-計(jì)算圖的特點(diǎn)說(shuō)明
這篇文章主要介紹了pytorch-autograde-計(jì)算圖的特點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05

