將開發(fā)機的python開發(fā)環(huán)境部署到業(yè)務機的離線生產(chǎn)環(huán)境通常是比較困難的。python版本,軟件包的版本和各種依賴環(huán)境都要較為嚴格的保持一致。如果不是十分小心,很容易就會陷入各種鏈接錯誤等。如何比較簡便的進行python環(huán)境的離線遷移呢?本文基于anaconda的包管理功能,提供一種較為簡便的環(huán)境遷移方法。
思路
思路很簡單,就是將 開發(fā)環(huán)境的虛擬環(huán)境文件夾 移動到 生產(chǎn)環(huán)境的虛擬環(huán)境文件夾。
需要保證: python的基礎版本一致,如3.6對應3.6,后面小版本無所謂。
流程
開發(fā)機
-
開發(fā)機使用conda創(chuàng)建好對應的虛擬環(huán)境,并安裝必要的包。
# 創(chuàng)建并激活環(huán)境 conda create -n OCEAN python=3.6 conda activate OCEAN # 安裝必要的包 pip install xxx conda install xxx -
開發(fā)機器的環(huán)境打包
首先
conda info -e找到對應包的位置。如圖,我的環(huán)境在/home/wukang/.conda/envs/OCEAN目錄下。image-20211227175202788打包對應的環(huán)境,
tar cvf OCEAN_ENVS.tar /home/wukang/.conda/envs/OCEAN,將對應的環(huán)境拷貝至U盤。
至此,物理機的操作已經(jīng)完成,把需要的代碼和上述生成的環(huán)境壓縮包拷貝至U盤即可。
業(yè)務機
安裝anaconda/miniconda。
-
創(chuàng)建和開發(fā)機器同名的虛擬環(huán)境,一定要同名,否則后續(xù)會出問題。
# 從base環(huán)境克隆出和開發(fā)環(huán)境同名的OCEAN環(huán)境 conda create -n OCEAN --clone base 解壓環(huán)境。
tar xvf OCEAN_ENVS.tar /home/xxx/miniconda/envs/-
激活環(huán)境。
source activate OCEAN
至此,業(yè)務機的環(huán)境克隆就已經(jīng)完成。
