Conda虛擬環(huán)境的復(fù)制和遷移過程
Conda虛擬環(huán)境的復(fù)制和遷移
在本機(jī)復(fù)制Conda虛擬環(huán)境
conda create --name 新環(huán)境名 --clone 舊環(huán)境名
相同操作系統(tǒng)之間復(fù)制環(huán)境
方法一:requirements.txt
這個方法不推薦,因為只會導(dǎo)出你使用pip安裝的依賴包,不會導(dǎo)出虛擬環(huán)境所依賴的包,并不適用于虛擬環(huán)境的遷移的應(yīng)用場景。
事實上,此方法比較適用于,已經(jīng)明確知道依賴哪些包,我們只需要package信息的情況,如寫項目文檔,告訴別人運行我這個系統(tǒng)必須安裝哪些依賴包。而忽略虛擬環(huán)境本身的依賴環(huán)境。
pip freeze > requirements.txt # 生成requirements.txt pip install -r requirements.txt # 從requirements.txt安裝依賴
方法二 : Environment.yml
跨平臺和操作系統(tǒng)共享項目環(huán)境也可以使用 -export 選項生成 environment.yml 文件來完成。
規(guī)范列表和 environment.yml 文件之間的區(qū)別在于 environment.yml 文件不是特定于操作系統(tǒng)的,而是使用 YAML 格式化的。
只列出包名,conda根據(jù)包名搭建環(huán)境。
另一個區(qū)別是 -export 還包括使用 pip 安裝的包,而 spec 列表不包括。
要導(dǎo)出 environment.yml 文件:
conda env export environment.yml
- 請注意,如果路徑中已有 environment.yml 文件,conda 將覆蓋該文件。
創(chuàng)建環(huán)境:
conda env create -f environment.yml
方法三:Conda Pack
Conda-pack 是一個命令行工具,用于打包 conda 環(huán)境,其中包括環(huán)境中安裝的包的所有二進(jìn)制文件。此法支持?jǐn)嗑W(wǎng)環(huán)境下使用。Environment.yml 是從python依賴包各自的存儲庫中下載包來創(chuàng)建環(huán)境,缺點當(dāng)然是網(wǎng)速慢、容易下載失敗等等。此法就沒有這個問題。
請記住,conda-pack 是特定于平臺和操作系統(tǒng)的,目標(biāo)計算機(jī)必須具有與源計算機(jī)相同的平臺和操作系統(tǒng)。
要安裝 conda-pack,請確保您處于 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)境整個復(fù)制到目標(biāo)電腦(以下統(tǒng)稱為target電腦)上。
前提是target計算機(jī)必須具有與src計算機(jī)相同的平臺和操作系統(tǒng)。
1、target電腦上安裝相同版本的Anaconda。
2、從src電腦把envs文件夾中需要復(fù)制的虛擬環(huán)境文件夾復(fù)制到target電腦上,位置隨便放。
我們可以通過以下命令來查看src電腦上虛擬環(huán)境文件夾的存放路徑:
conda env list

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

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

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

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

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python腳本批量轉(zhuǎn)換網(wǎng)頁文件編碼為UTF-8
文章介紹了一個自動化腳本,用于將通過瀏覽器另存為功能保存的網(wǎng)頁文件從GBK轉(zhuǎn)換為UTF-8編碼,以解決中文亂碼問題,并保持源目錄結(jié)構(gòu),該腳本支持文本和二進(jìn)制文件的處理,易于使用和擴(kuò)展,需要的朋友可以參考下2026-01-01
python sqlalchemy動態(tài)修改tablename兩種實現(xiàn)方式
這篇文章主要介紹了python sqlalchemy動態(tài)修改tablename兩種實現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-03-03

