python 通過pip freeze、dowload打離線包及自動安裝的過程詳解(適用于保密的離線環(huán)境
python的pip是其包管理工具,相當方便好用。本文只介紹pip 如何通過其freeze命令打離線包,及其離線包的安裝腳本。這個知識點,特別適用于不適合連通互聯(lián)網(wǎng),設(shè)備需要物理隔絕,保密要求嚴格的客戶環(huán)境。
環(huán)境
操作系統(tǒng): Centos 7.7
python 版本: 2.7
客戶網(wǎng)絡環(huán)境: 離線
研發(fā)網(wǎng)絡環(huán)境:聯(lián)網(wǎng)
pip 安裝
(1)下載rpm包
首先研發(fā)環(huán)境(聯(lián)網(wǎng)),去 https://pkgs.org/download/python-pip選擇合適的pip rpm離線包下載,如下圖:

選擇一個rpm鏈接,點擊進去,然后在下載模塊,選擇二進制文件相關(guān)下載地址下載即可【CoderBaby】,如下圖:

(2)rpm 安裝pip離線包
rpm -ivh python2-pip-8.1.2-10.el7.noarch.rpm (rpm離線包完整路徑名)
(3)升級pip
通過舊版的pip install 命令升級pip到最新版本,具體如下:
pip install packages/pip-20.2.3-py2.py3-none-any.whl (從pypi官網(wǎng)下載.whl包: https://pypi.org/project/pip/)
(4)pip freeze 將系統(tǒng)已安裝的包按照需要的格式打包
具體命令如下:
pip freeze >requirements.txt(重定向,并且指定輸出文件名稱、格式、路徑)
結(jié)果如下:

(5)pip download 下載離線包
具體命令如下:
pip download -d packages -r requirements.txt (將requirements.txt里指定的包名和版本—【可根據(jù)需要,編輯requirements.txt,刪除不需要打包的包】打包到默認packages文件夾下)
結(jié)果如下圖:

(6)通過shell腳本安裝離線包
具體shell腳本命令如下:
pip install --no-index --find-links=packages -r requirements.txt
說明:
首先將packages文件夾和requirements.txt拷貝至離線服務器:packages文件夾放在任意目錄下,requirements.txt放在同級目錄
相關(guān)目錄結(jié)構(gòu)如下圖:

注:
python 2.6.6 升級到 2.7
centos 6自帶的python 版本為2.6.6,需要升級到2.7,詳情可參考:http://m.fzitv.net/article/202100.htm
【@2020/12/7,國內(nèi)各大鏡像似乎棄用CentOS 6了,參見:https://www.v2ex.com/t/733142】
到此這篇關(guān)于python 通過pip freeze、dowload打離線包及自動安裝的過程詳解(適用于保密的離線環(huán)境的文章就介紹到這了,更多相關(guān)python 打離線包及自動安裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對python:threading.Thread類的使用方法詳解
今天小編就為大家分享一篇對python:threading.Thread類的使用方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
給Django Admin添加驗證碼和多次登錄嘗試限制的實現(xiàn)
這篇文章主要介紹了給Django Admin添加驗證碼和多次登錄嘗試限制的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07
在Python中marshal對象序列化的相關(guān)知識
這篇文章主要介紹了在Python中marshal對象序列化的相關(guān)知識,是Python進階學習中序列化相關(guān)的知識,需要的朋友可以參考下2015-07-07
Python使用pptx實現(xiàn)復制頁面到其他PPT中
這篇文章主要為大家詳細介紹了python如何使用pptx庫實現(xiàn)從一個ppt復制頁面到另一個ppt里面,文中的示例代碼講解詳細,感興趣的可以嘗試一下2023-02-02

