python離線環境包依賴問題處理(轉)


 

python環境離線部署

當前生產環境中,有很多基於python開發的工具需要使用。
由於python工具往往涉及到很多依賴,在線狀態下,可以通過pip requirements來管理安裝。
但有時候,會遇到需要部署的環境,無法連接到pip源的情況。比如,客戶端處於內部網或者無網絡連接的情況的情況。
在這種情況下,準備完全離線的安裝環境,可以大大降低工具部署成本。

在某項目中,開發了一個windows平臺下基於python的數據顯示工具。
假設客戶的電腦上什麼環境也沒有,以下步驟小結了如何進行離線部署。

準備工作

1. 準備乾淨的Python包

考慮到儘量精簡,在項目依賴不多的時候,建議使用python標準包部署環境。
python官網或其他源上下載所需的python安裝包並安裝。

2. 創建一個python的虛擬環境

如果開發時沒有隔離虛擬環境,可以在此時隔離。
假設已下載安裝了標準Python包3.8,並安裝在了D:/python3.8/
進入CMD命令行

D:\python3.8\python.exe -m venv d:\virtual_env

當然,如果已經配置了Path的系統變量,可以直接

python.exe -m venv d:\virtual_env

建立好新環境後,在新環境d:\virtual_env

pip freeze > requirments_zero.txt 

得到的應該是一個空文件。

3. 在虛擬環境下安裝本項目需要的依賴,直到項目可以運行

將虛擬環境激活(切換pycharm的interpreter或者active虛擬環境)
這時候,新項目所需的包是未安裝狀態的,也無法運行。
對於已經開發完畢的項目,應當已經記錄過一個requirements.txt,舉例來說,本項目依賴:
(以下爲requirements.txt)

flask
flask-cors
paramiko
pyecharts
piexif

這5行已經記錄在了requirements.txt裏
可以通過

pip install -r requirements.txt

安裝
如果沒有記錄,則需要逐個排查安裝依賴庫

4. 生成含有所有依賴鏈的requirements.txt

當項目可以在新環境正常運行後,在新環境d:\virtual_env下

pip freeze > requirments_full.txt

會生成一個包含基於當前python版本的所有依賴鏈的清單,舉例來說,本項目依賴:
(以下爲requirements_full.txt)

bcrypt3.2.0
cffi1.15.0
click8.0.3
colorama0.4.4
cryptography36.0.1
Flask2.0.2
Flask-Cors3.0.10
itsdangerous2.0.1
Jinja23.0.3
MarkupSafe2.0.1
paramiko2.9.2
piexif1.1.3
prettytable3.0.0
pycparser2.21
pyecharts1.9.1
PyNaCl1.5.0
simplejson3.17.6
six1.16.0
wcwidth0.2.5
Werkzeug2.0.3

5. 下載依賴鏈的所有whl

通過以下命令,可以

pip download -r requirements_full.txt -d ./packages

經過1~5步,已經得到了:

    1. python安裝包
  • 2 requirements_full.txt
  • 3 packages/ 文件夾
    這3份數據可以在其他PC上離線部署python環境

新環境部署

拷貝python安裝包、requirements.txt 和 packages

  1. 安裝python
  2. 安裝好之後,進入命令行,輸入以下命令離線安裝packages
pip install --no-index --find-links=./packages -r requirements.txt

本文來自博客園,作者:坦先生的AI資料室,轉載請註明原文鏈接:https://www.cnblogs.com/yushengchn/p/15886828.html

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章