python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境


Posted in Python onDecember 14, 2020

python的pip是其包管理工具,相当方便好用。本文只介绍pip 如何通过其freeze命令打离线包,及其离线包的安装脚本。这个知识点,特别适用于不适合连通互联网,设备需要物理隔绝,保密要求严格的客户环境。

环境

操作系统: Centos 7.7

python 版本: 2.7

客户网络环境: 离线

研发网络环境:联网

pip 安装

(1)下载rpm包

首先研发环境(联网),去 https://pkgs.org/download/python-pip选择合适的pip rpm离线包下载,如下图:

python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境

选择一个rpm链接,点击进去,然后在下载模块,选择二进制文件相关下载地址下载即可【CoderBaby】,如下图:

python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境

(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官网下载.whl包: https://pypi.org/project/pip/)

(4)pip freeze 将系统已安装的包按照需要的格式打包

具体命令如下:

pip freeze >requirements.txt(重定向,并且指定输出文件名称、格式、路径)

结果如下:

python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境

(5)pip download 下载离线包

具体命令如下:

pip download -d packages -r requirements.txt (将requirements.txt里指定的包名和版本—【可根据需要,编辑requirements.txt,删除不需要打包的包】打包到默认packages文件夹下)

结果如下图:

python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境

(6)通过shell脚本安装离线包

具体shell脚本命令如下:

pip install --no-index --find-links=packages -r requirements.txt

说明:

首先将packages文件夹和requirements.txt拷贝至离线服务器:packages文件夹放在任意目录下,requirements.txt放在同级目录

相关目录结构如下图:

python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境

注:

python 2.6.6 升级到 2.7

centos 6自带的python 版本为2.6.6,需要升级到2.7,详情可参考:https://3water.com/article/202100.htm

【@2020/12/7,国内各大镜像似乎弃用CentOS 6了,参见:https://www.v2ex.com/t/733142】

到此这篇关于python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境的文章就介绍到这了,更多相关python 打离线包及自动安装内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python双向链表实现实例代码
Nov 21 Python
Python获取网页上图片下载地址的方法
Mar 11 Python
python通过BF算法实现关键词匹配的方法
Mar 13 Python
Python内置函数OCT详解
Nov 09 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
详解Python读取yaml文件多层菜单
Mar 23 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 Python
在python中实现调用可执行文件.exe的3种方法
Jul 07 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
Mar 30 Python
基于K.image_data_format() == 'channels_first' 的理解
Jun 29 Python
python爬虫使用requests发送post请求示例详解
Aug 05 Python
python UIAutomator2使用超详细教程
Feb 19 Python
Pandas中DataFrame交换列顺序的方法实现
Dec 14 #Python
python中time、datetime模块的使用
Dec 14 #Python
全面介绍python中很常用的单元测试框架unitest
Dec 14 #Python
python读写数据读写csv文件(pandas用法)
Dec 14 #Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 #Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 #Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 #Python
You might like
BBS(php & mysql)完整版(三)
2006/10/09 PHP
PHP合并数组+与array_merge的区别分析
2010/08/01 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
php获得url参数中具有&的值的方法
2014/03/05 PHP
JavaScript 原型与继承说明
2010/06/09 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
javascript截取字符串(通过substring实现并支持中英文混合)
2013/06/24 Javascript
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
基于gulp合并压缩Seajs模块的方式说明
2016/06/14 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
python执行子进程实现进程间通信的方法
2015/06/02 Python
Python引用模块和查找模块路径
2016/03/17 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
浅析Python 中几种字符串格式化方法及其比较
2019/07/02 Python
Python flask框架post接口调用示例
2019/07/03 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
优秀的2014年两会精神解读
2014/03/17 职场文书
2016年度先进班组事迹材料
2016/03/01 职场文书
nginx配置之并发频次限制
2022/04/18 Servers