python環(huán)境的導(dǎo)出與導(dǎo)入

1 問題描述
需要在多臺電腦中安裝python項目的環(huán)境,需要避免第三方庫不同版本的影響,減少重復(fù)工作量。
2 解決方案
本文提供兩種環(huán)境復(fù)制方案,并提供了詳細的步驟:
不太好的方案:使用requirements.txt
比較好的方案:使用requirements.yaml
2.1 不太好的方案:使用requirements.txt
使用 requirements.txt
導(dǎo)出環(huán)境中所有使用庫的名稱和版本號。注意,這里說的“使用庫”是指導(dǎo)出的庫不一定是當前python環(huán)境中所有的庫,而是所在項目中使用了的庫,這是不一樣的。(查看所有的庫可以通過 conda list
實現(xiàn))
step 1:環(huán)境導(dǎo)出
這里使用的是windows下的Anaconda3,先打開Anaconda Navigator窗口,選擇所需導(dǎo)出的環(huán)境,在選項中選擇Open Terminal打開終端窗口。輸入語句,進入D盤,打開工程項目文件所在的窗口
?d:
?cd D:\Code\code_v2
輸入
?pip freeze > requirements.txt
實現(xiàn)環(huán)境的導(dǎo)出,在項目文件目錄中可以看到導(dǎo)出的requirements.txt
文件,文件中包括了使用庫的名稱和版本號。如果該文件為空,則說明導(dǎo)出失敗,檢查上述步驟,是否是打開了所需環(huán)境的終端。
step 2:環(huán)境導(dǎo)入
環(huán)境定位到文件所在文件夾,通過代碼
?pip install -r requirements.txt
即可實現(xiàn)環(huán)境的導(dǎo)入。
但是這種方法存在一些問題,一些通過pip方式安裝的庫會在requirements.txt文件中記錄路徑信息,但這個路徑在新設(shè)備中不一定有,因此會報錯,處理起來也比較麻煩(已放棄)。
2.2 比較好的方案:使用requirements.yaml
.yaml是保存環(huán)境信息的專用文件,在不同機器間導(dǎo)入速度快,可靠性高。
step 1:環(huán)境導(dǎo)出
這里使用的是windows下的Anaconda3,先打開Anaconda Navigator窗口,選擇所需導(dǎo)出的環(huán)境,在選項中選擇Open Terminal打開終端窗口。輸入語句,進入D盤,打開工程項目文件所在的窗口
?d:
?cd D:\Code\code_v2
輸入
?conda env export > requirements.yaml
實現(xiàn)文件導(dǎo)出,.yaml文件保存在項目文件目錄。
step 2:環(huán)境導(dǎo)入
打開anaconda終端,定位到.yaml文件所在目錄,直接在base環(huán)境中輸入
?conda env create -f environment.yaml
即可完成新環(huán)境的創(chuàng)建,注意新環(huán)境的名稱會默認和之前機器上環(huán)境的名稱一致。
2022年2月8日
Pcon