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返回昨天日期的方法
May 13 Python
Python面向对象编程基础解析(二)
Oct 26 Python
Python实现PS图像明亮度调整效果示例
Jan 23 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
python爬取哈尔滨天气信息
Jul 14 Python
使用Python实现在Windows下安装Django
Oct 17 Python
python 输入一个数n,求n个数求乘或求和的实例
Nov 13 Python
详解python调用cmd命令三种方法
Jul 08 Python
ORM Django 终端打印 SQL 语句实现解析
Aug 09 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
python3中sorted函数里cmp参数改变详解
Mar 12 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 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
php中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
Laravel框架Eloquent ORM修改数据操作示例
2019/12/03 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
js getElementsByTagName的简写方式
2010/06/27 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
一个基于jquery的文本框记数器
2012/09/19 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
Angularjs 滚动加载更多数据
2016/03/17 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
关于定制FileField中的上传文件名称问题
2017/08/22 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
用pickle存储Python的原生对象方法
2017/04/28 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
python 中的列表生成式、生成器表达式、模块导入
2019/06/19 Python
python根据多个文件名批量查找文件
2019/08/13 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
三分钟自我介绍演讲稿
2014/08/21 职场文书
2014年档案室工作总结
2014/12/01 职场文书
西岭雪山导游词
2015/02/06 职场文书
个人总结格式范文
2015/03/09 职场文书
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers