生產環境一般都沒有公網環境,python項目在上線時無法在線安裝python庫。conda提供了pack包的方式,可以將環境導出后直接使用。其作用就是更新了python環境為系統環境,杜絕了環境中使用了絕對路徑后,遷移路徑變化導致無法使用虛擬環境。前提示是要在有公網並且系統環境一至的機器上安裝環境,然后在導入到生產環境。
遷移期間會發生一種問題,pip 版本不匹配導致無法正常導出環境。解決方法就是在創建環境時,將Pip指定為conda的base環境的Pip版本。目前看起來,只要指定PIp版本,不一定要和conda默認base一至,需要進一步驗證。
1. 創建虛擬環境
conda create -n zampai_people_attribution python=3.7 pip=21.0.1
2. 安裝python庫
下載后離線安裝
pip install --no-index --find-links=. -r zampai_people_attribution.req.txt
在線安裝
pip install -r zampai_people_attribution.req.txt
3. 安裝conda的pack包
conda install -c conda-forge conda-pack
4. 導出虛擬環境
# 直接導出為zampai_people_attribution.tar.gz包
conda pack -n zampai_people_attribution
# -o 導出為指定名稱
conda pack -n zampai_people_attribution -o zampai_people_attribution.tar.gz
# -p 導出到指定目錄
conda pack -n zampai_people_attribution -p /tmp/zampai_people_attribution.tar.gz
5. 上傳虛擬環境
使用curl上傳可參考https://www.cnblogs.com/zou-xiyuan/p/15421375.html
6. 生產環境部署
解壓包
tar -zxvf zampai_people_attribution.tar.gz
激活使用
cd zampai_people_attribution
source zampai_people_attribution
或放入conda的env進行管理
cp zampai_people_attribution /conda3/env/
conda activate zampai_people_attribution