離線部署python項目的最佳實踐

任務(wù):將windows開發(fā)的python工程部署到離線Ubuntu服務(wù)器中。

目標(biāo)機器無法上網(wǎng),沒有辦法直接 pip install -r requirements.txt 安裝依賴。而且目標(biāo)機器跟開發(fā)機器操作系統(tǒng)不同,直接拷貝site-package也行不通。

經(jīng)過探索,最佳實踐如下:

1. 在虛擬機或者windows子系統(tǒng)中,新建跟目標(biāo)機器一樣的操作系統(tǒng),安裝相同版本python

這個虛擬機是能夠上網(wǎng)的,所以這一步比較簡單,用它來下載目標(biāo)機器的依賴。

2. 在虛擬機上下載依賴

pip download -r requirements.txt -d wheelfiles -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

這樣,項目依賴就會存入wheelfiles文件夾內(nèi)

3. 文件導(dǎo)入目標(biāo)機器

需要導(dǎo)入文件有:

  • 項目工程代碼
  • requirements.txt
  • wheelfiles 文件夾
  • python安裝包:python.tgz
  • python安裝包依賴:zlib.tar.gz

4. 離線安裝zlib和python

安裝python3之前需要安裝zlib,否則會報錯。安裝的過程就是標(biāo)準(zhǔn)四連:
(0). tar -xzf xxx 解壓
(1). ./config 配置
(2). make 構(gòu)建
(3). make install 安裝

注意 配置python3時,推薦加入?yún)?shù) ./configure --enable-optimizations --with-lto, 以提升性能。

5. 查看python狀態(tài)

用下面的指令,確保后續(xù)步驟使用正確的python

# 查看安裝的python版本位置
whereis python

# 查看當(dāng)前綁定狀態(tài)
update-alternatives --display python

# python 綁定版本 最后的數(shù)字代表優(yōu)先級,數(shù)字越大,優(yōu)先級越高
update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1
# 切換版本
update-alternatives --config python

# 查看版本
python -V

6. 創(chuàng)建虛擬環(huán)境,完成依賴隔離

python -m venv venv
source venv/bin/activate
python --version

7. 安裝依賴

# 在離線服務(wù)器中安裝依賴
pip install -r requirements.txt --no-index --find-links path/to/wheels

使用上述命令,直接從導(dǎo)入的wheels包中安裝依賴。

8. 運行測試項目,完成部署

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容