Python离线安装包教程分享
作者:AdleyTales 发布时间:2023-08-03 18:16:40
Python离线安装包
下载pip包
pip download 你要下载的包名 -d 下载的路径
# example 结果会下载很多whl包
pip download httpie -d .
pip离线安装
pip install 包名 # 各种whl 默认要安装的最后一个安装
# 或者
pip download -d \home\packs -r requirement.txt
注意:
务器环境一般都为linux 环境,所以我们下载所需包的时候最好使用自己的虚拟机或其他相同的环境来进行下载。
第一步也可以pip freeze --all > requirements.txt
。在项目目录下新建一个whls文件夹(用来存储我们依赖包)然后在虚拟环境cmd命令下切换到whls目录
执行 pip freeze --all > requirements.txt 命 令 将安装包版本信息导入到requireents.txt文件中(该文件位置在执行cmd命令当前目录下,也就是whls下); 注意–all参数,加上此参数会将setuptools、urllib3包进行打包;如果不加,这两个不会打包
离线批量安装python包
随着网络安全越来越受重视,很多企业的开发、测试和生产环境都已经跟互联网隔离,这就导致python无法在内网直接使用pip安装第三方包,离线安装成为必备技能。
1 python包常见安装方法
1.1 直接从python源下载,然后手动安装
适合场景:
适合临时安装一两个包的场景。
优缺点:
效率低,经常会遇到需要外部依赖包的情况。
1.2 使用 pip 根据requirements文件下载安装包,到离线环境中安装
适合场景:
需要批量安装第三方包,软件部署有明确的requirements文件的场景。
优缺点:
可以批量下载和安装,一次性解决一台服务器上安装多个包的问题。
2 Python包分类和安装
Python包按照安装包的方式可以分为:wheel包、源码包(zip或tar.gz)、egg包。其中,wheel包和源码包比较常见,egg已经很少了。
2.1 安装wheel包
wheel包的命名格式为:{distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl。
名称 | 对应名称 | 解释 |
distribution | mysql_connector | 包名 |
version | 2.1.6 | 版本 |
bulid tag | 备注标签 | 可省略 |
python-tag | cp36 | 表示 cpython 3.6 版本 |
abi-tag | cp36m | abi Application Binary Interface应用程序二进制接口 |
platform | win_amd64 | platform 还可以是 anywin32 , linux_i386 , linux_x86_64, any 表示 跨平台 |
到达路径后根据不同文件后缀,操作如下:
pip install **.whl
例如:
pip install JPype1_py3-0.5.5.2-cp35-none-win_amd64.whl
2.2 安装源码包(zip或tar.gz)
下载模块包到安装地址(压缩文件zip或tar.gz),进行解压,到达指定位置进入模块文件夹,执行python setup.py install
例如:
下载 uwsgi 源码包
解压 tar -zxvf uwsgi.tar.gz
进入目录 cd uwsgi
使用python 安装 python3 setup.py install
2.3 安装egg包
先下载ez_setup.py,运行python ez_setup 进行easy_install工具的安装,之后就可以使用easy_install进行安装package
easy_install packageName
easy_install package.egg
3 批量离线安装包
3.1 制作requirement.txt,导出项目中所有依赖包
比如下载 django 1.8.11版本的包,requirements.txt的内容就是:
django==1.8.11
使用 pip freeze 会输出所有在本地已安装的包(但不包括 pip、wheel、setuptools 等自带包),若需要输出内容与 pip list 一致,需使用 pip freeze -all。
使用方法:
pip freeze > requirements.txt
适用场合:
由于 pip freeze 与 pip list 内容区别不大,所以,若想要用其作为工程依赖包列表,需要配合 Python 虚拟环境 virtualenv 使用。
3.2 将所有包下载到目标目录中
例如:想将包放在\home\packs目录下
pip download -d \home\packs -r requirement.txt
3.3 将文件打包后放到离线服务器上,并进行解压缩
pip install --no-index --find-links=\home\packs -r requirements.txt
来源:https://adleytales.blog.csdn.net/article/details/120460183


猜你喜欢
- 废话不多说,估计只有我这个菜鸟废了2个小时才搞出来,主要是我想了太多方法来实现,最后都因为这因为那的原因失败了间接说明自己对可变与不可变类型
- 数组是一种有序的集合,可随时添加、删除其中的元素book = ['xiao zhu pei qi','xiao ji
- 1)视频读取import cv2cap = cv2.VideoCapture('E:\\Video\\20000105_224116
- 本文实例讲述了js简单实现Select互换数据的方法。分享给大家供大家参考。具体如下:这里基于javascript实现两个Select互换数
- 首先简单介绍使用vue-router的四个基本步骤:(为了方便演示,所有代码都写在一个文件里)1.定义组件2.定义路由3.创建router实
- PyTorch 随机数生成占用 CPU 过高的问题今天在使用 pytorch 的过程中,发现 CPU 占用率过高。经过检查,发现是因为先在
- js的成员和方法好象没有private和public之分,列一下public的成员和方法成员:name 控件的名字,既这个控件的变量名(必选
- 本文主要介绍的是Python高阶函数与装饰器函数的相关内容,分享给大家,下面话不多说了,来一起看看详细的介绍吧高阶函数1、可以使用函数对象作
- 你好,%用户名%!我叫Alex,我在机器学习和网络图分析(主要是理论)有所涉猎。我同时在为一家俄罗斯移动运营商开发大数据产品。这是我第一次在
- 这篇文章主要介绍了python主线程与子线程的结束顺序实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 前言本文主要介绍了关于Python中TCP socket的写法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。一、 服务器
- 前段时间 做了个学校的春萌项目,其中用到vue连接后端java接口。先上后端接口代码:package controller;import n
- 修改 index.js 内容,写一些 ES6 的语法:const arr = [ new Promise(() => {}
- 客户需要一个类似 news letter 的功能,当然,内容是可编辑的,而且还要以 HTML 格式呈现给用户。这就需要在发送邮件的时候,指明
- wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概。首
- 基本命令显示版本信息pip -V安装指定包pip install <packages>pip install -i 'h
- 本次分享将讲述如何在Python中对多个list的对应元素求和,前提是每个list的长度一样。比如:a=[1,2,3], b=[2,3,4]
- 前言在awesomes上寻找移动端框架的时候意外发现了vux的页面切换效果,后面由于其他考虑没有选用vuex但是这个切换效果确实感觉很有新意
- 本文目标:使用selenium3.0+python3操纵浏览器,打开百度网站。(相当于selenium的hello world)环境基础:p
- 本文实例讲述了js实现适用于素材网站的黑色多级菜单导航条效果。分享给大家供大家参考。具体如下:这是一款适用于素材网站的黑色多级菜单导航条,无