打包遷移Python env環境
平常工作中可能遇到python虛擬環境遷移的場景,總結了如下幾個方法。適用于同架構、相同類型系統之間的python虛擬環境遷移。
方法一:使用pip freeze
和requirements.txt
這種方法將當前環境中的所有包記錄到一個文件中,然后在新環境中安裝這些包。
1. 導出當前環境中的包
在當前虛擬環境中,運行以下命令來生成requirements.txt
文件:
pip?freeze?>?requirements.txt
2. 遷移requirements.txt
文件
將生成的requirements.txt
文件復制到目標機器上。
3. 在目標機器上創建新環境并安裝包
在目標機器上,創建新的虛擬環境,然后使用requirements.txt
文件來安裝所有包:
#?創建新的虛擬環境
python?-m?venv?my_new_env
#?激活新環境
#?Windows
my_new_env\Scripts\activate
#?macOS/Linux
source?my_new_env/bin/activate
#?安裝包
pip?install?-r?requirements.txt
方法二:打包整個虛擬環境目錄
這種方法將整個虛擬環境目錄打包并復制到目標機器上。可以實現離線打包遷移,且目的端不需要下載及安裝過程。
1. 打包虛擬環境目錄
在當前機器上,使用壓縮工具將虛擬環境目錄打包:
#?假設虛擬環境目錄名為my_env
tar?-czvf?my_env.tar.gz?my_env
2. 遷移壓縮包
將生成的my_env.tar.gz
文件復制到目標機器上。
3. 解壓虛擬環境目錄
在目標機器上,解壓縮虛擬環境目錄:
tar?-xzvf?my_env.tar.gz
注意:
這種方法遷移確保遷移前后環境的python版本盡量一致,和架構必須一致。 使用此種方式遷移到新機器后,確保解壓后虛擬環境bin目錄下python軟連接文件指向本地的python路徑是正確的。否則會報文件不存在: bad interpreter: No such file or directory
方法三:下載wheel包離線遷移環境
在當前機器下載離線的wheel包,將離線包遷移至目標機器直接安裝。
1. 舊環境導出
在當前環境中,運行以下命令來生成wheel文件:
pipenv?freeze?>?requirements.txt
#?執行如下文件會根據requirements.txt下載wheel安裝包,下載后位于當前目錄packages文件夾
pip?wheel?-w?packages?-r?requirements.txt
#?或者或者使用如下命令,將wheel包下載至packages文件夾。與上面命令效果是一樣的。
pip?download?-r?requirements.txt?-d?packages
2. 新環境安裝
將requirements.txt和packages文件夾復制到新機器上,創建虛擬環境,
python?-m?venv?my_new_env
pip?install?--no-index?--find-links=packages?-r?requirements.txt??
注意
這種方法對于兩邊的python版本和系統類型有一定要求,盡量接近,可以根據遷移情況進行調整。有的wheel包區分是windows和linux版本。
本文由 mdnice 多平臺發布