Python離線專案遷移部署

2022-01-30 08:03:52 字數 2586 閱讀 6742

最近遇到了乙個場景:需要將python專案檔案打包到無法聯網的主機上部署執行,本篇文章記錄針對於該場景的處理方案。

說明:源主機(可聯網):安裝了python3和pip3

目標主機(無法聯網):需安裝和源主機相同的python版本和pip3,部署執行專案檔案

主機系統為centos,python版本為3.5.2,通過虛擬環境+pip進行遷移

python3

wget --no-check-certificate
python3依賴包

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel  epel-release gcc gcc-c++ xz-devel readline-devel gdbm-devel sqlite-devel tk-devel db4-devel libpcap-devel libffi-devel --downloadonly --downloaddir=/packages
命令執行完畢,你就會在/packages目錄下發現所需的所有.rpm檔案。

如果,源主機中已經安裝了這些依賴,那麼你可以用:

yum reinstall zlib-devel bzip2-devel openssl-devel ncurses-devel  epel-release gcc gcc-c++ xz-devel readline-devel gdbm-devel sqlite-devel tk-devel db4-devel libpcap-devel libffi-devel --downloadonly --downloaddir=/packages
打包:

zip -r packages.zip packages/
目標主機中安裝

將python-3.5.2.tgz和packages.zip上傳至目標主機。

首先,安裝python3依賴:

unzip packages.zip

cd packages/

rpm -uvh *.rpm --nodeps --force

然後,安裝python3:

tar -zxvf python-3.5.2.tgz

mkdir /usr/local/python3

cd python-3.5.2

./configure --prefix=/usr/local/python3 # 將python3安裝在/usr/local/python3

make && make install # 編譯安裝

ln -s /usr/local/python3/bin/python3 /usr/bin/python3 # 建立python3軟鏈結

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 # 建立pip3軟鏈結

安裝完畢,可通過:

python3 -v

pip3 -v

檢視並檢查安裝的版本

若專案中建立虛擬環境,首先啟用虛環境,然後進入專案檔案,執行:

pip3 freeze > requirements.txt
將當前專案中的庫列表生成並儲存在requirements.txt中。

然後,通過pip生成批量離線安裝包(whl檔案):

pip wheel --wheel-dir=./tmp/packages -r requirements.txt
執行完畢之後,你會發現/tmp/packages中包含了專案所需的所有.whl

打包專案檔案:

zip a.zip a/
上傳a.zip至目標主機,建立虛環境,並啟用(python3 自帶了venv):

python3 -m venv test_venv

cd test_venv

source bin/activate

解壓專案**a.zip,並切換:

unzip a.zip

cd a/

安裝專案python依賴模組:

pip3 install --no-index --find-links=tmp/packages -r requirements
安裝完畢,檢查:

pip3 freeze
當然你也可以通過python命令列import進行檢驗哈哈。

最後,執行專案啟動指令碼(startup.sh)部署:

chmod +x  ./startup.sh

nohup ./startup.sh > a-log 2>&1 &

以上,就完成了整個專案的遷移部署。

如何離線部署專案

在客戶那邊經常是沒有網路的環境,那麼如何離線部署呢?這邊我提供乙個辦法!首先,在有網路的本地環境,建立一台跟客戶那邊一模一樣的虛擬機器,比如我現在要安裝php yum y install php72w php72w cli downloadonly downloaddir 注意,為什麼說要一樣的環境...

已完成的python專案 環境離線部署

在某專案中,開發了乙個windows平台下基於python的資料顯示工具。假設客戶的電腦上什麼環境也沒有,以下步驟小結了如何進行離線部署。d python3.8 python.exe m venv d virtual env當然,如果已經配置了path的系統變數,可以直接 python.exe m ...

conda 離線遷移環境

一 遷移conda環境 1 拷貝環境,例如tf2 2用conda新建環境 conda create name new env clone env3 修改一下環境中的許可權 sudo chmod r 777測試一下python版本,可以在環境中的 bin資料夾中執行一下 二 本地安裝pip離線 4 本...