最近遇到了乙個場景:需要將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 本...