Linux中安装形式+setup.py小结

setup.py小结

对我之前的疑问点先说结论:

build 构建安装时所需要的内容

python setup.py install 包括build和install

python setup.py install包括两步:python setup.py build, python setup.py install,这两步,可分开执行, 也可只执行python setup.py install, 因为python setup.py install总是会先build后install。

python setup.py build 是python编译这个module的过程, 这个过程比较复杂,最后会生成build文件夹。除去build过程后的install过程,就是复制build/lib文件到用户指定的lib库。实例解析展示

setup 函数常用的参数

setup.py文件书写&进阶打包命令

参数说明
name包名称
version包版本
author程序的作者
author_email程序的作者的邮箱地址
maintainer维护者
maintainer_email维护者的邮箱地址
url程序的官网地址
license程序的授权信息
description程序的简单描述
long_description程序的详细描述
platforms程序适用的软件平台列表
classifiers程序的所属分类列表
keywords程序的关键字列表
packages需要处理的包目录(通常为包含 init.py 的文件夹)
py_modules需要打包的 Python 单文件列表
download_url程序的下载地址
cmdclass添加自定义命令
package_data指定包内需要包含的数据文件
include_package_data自动包含包内所有受版本控制(cvs/svn/git)的数据文件
exclude_package_data当 include_package_data 为 True 时该选项用于排除部分文件
data_files打包时需要打包的数据文件,如图片,配置文件等
ext_modules指定扩展模块
scripts指定可执行脚本,安装时脚本会被安装到系统 PATH 路径下
package_dir指定哪些目录下的文件被映射到哪个源码包
entry_points动态发现服务和插件,下面详细讲
python_requires指定运行时需要的Python版本
requires指定依赖的其他包
provides指定可以为哪些模块提供依赖
install_requires
extras_require当前包的高级/额外特性需要依赖的分发包
tests_require在测试时需要使用的依赖包
setup_requires指定运行 setup.py 文件本身所依赖的包
dependency_links指定依赖包的下载地址
zip_safe不压缩包,而是以目录的形式安装

Python 包的分发历史

平常我们习惯了使用 pip 来安装一些第三方模块,这个安装过程之所以简单,是因为模块开发者为我们默默地为我们做了所有繁杂的工作,而这个过程就是 打包。

打包,就是将你的源代码进一步封装,并且将所有的项目部署工作都事先安排好,这样使用者拿到后即装即用,不用再操心如何部署的问题(如果你不想对照着一堆部署文档手工操作的话)。

源码包常见格式

格式后缀
zip.zip
gztar.tar.gz
bztar.tar.bz2
ztar.tra.Z
tar.tar

二进制包常见格式

格式后缀
egg.egg
wheel.whl

eggs 与 wheels 有什么区别? 参考(简述)

包分发的始祖:distutils(通过源码安装)

python setup.py install

分发工具升级:setuptools

  • 源码安装:在 https://pypi.org/project/setuptools/#files
    中下载 zip 包 解压执行 python setup.py install 安装
  • 通过引导程序安装:下载引导程序,它可以用来下载或者更新最新版本的 setuptools
$ wget http://peak.telecommunity.com/dist/ez_setup.py

# 安装
$ python ez_setup.py

# 更新,以下两种任选
$ python ez_setup.py –U setuptools
$ pip install -U setuptools

管理工具easy_install 使用

当你安装完 setuptools 后,就拥有了一个叫做 easy_install 的第三方管理工具,这也是它区分于 distutils 的一大改进。

这里简单介绍一下它的用法,虽然它已经用得非常少了。

安装

# 通过包名,从PyPI寻找最新版本,自动下载、编译、安装
$ easy_install pkg_name

# 通过包名从指定下载页寻找链接来安装或升级包
$ easy_install -f http://pythonpaste.org/package_index.html 

# 指定线上的包地址安装
$ easy_install http://example.com/path/to/MyPackage-1.2.3.tgz

# 从本地的 .egg 文件安装
$ easy_install xxx.egg

# 在安装时你可以添加额外的参数
指定安装目录:--install-dir=DIR, -d DIR
指定用户安装:--user

升级

# 从 pypi 中搜索并升级包
$ easy_install --upgrade pkg_name

# 指定版本进行升级
$ easy_install "SomePackage==2.0"

删除

$ easy_install -m pkg_name

指定源进行安装
编辑配置文件 /root/.pydistutils.cfg

[easy_install]
index-url=http://mirrors.aliyun.com/pypi/simple/
find-links=http://mirrors.aliyun.com/pypi/simple/

生成wheel、sdist

但是也可以将二者分开,就像比如你想在本地build好,然后发给其他人直接install就行了,如:

bdist_wheel生成wheel文件,示例:安装webrtcvad

sdist 是 setuptools(一种 Python 打包工具)的一个参数,用于打包源代码以便于发布和分发。

这个命令会执行一些列的操作,例如将项目文件夹中的源代码文件、配置文件、文档等打包成一个压缩文件,打包成 tar.gz (用于 Linux 环境中)或者 zip 压缩包(用于 Windows 环境中),这个压缩包可以供其他人安装和使用你的 Python 项目。

$ python setup.py sdist

原文链接:https://blog.csdn.net/jacke121/article/details/125185764

Linux中三种安装形式(rpm、tar/tar.gz(解压缩)、yum)

1.1 查询 rpm -qa

描述:查询所安装的所有rpm软件包

rpm -qa|grep rpm软件包

 
 
1.2 卸载 rpm -e

描述:卸载软件包

rpm -e rpm软件包版本信息

 
 

描述:卸载软件时,不检查依赖

rpm -e --nodeps rpm软件包版本信息

 
 
1.3 安装 rpm -ivh

描述:安装rpm包

rpm -ivh rpm 包全名

 
 
1.4 案例
// 检查jdk版本信息
rpm -qa|grep jdk
// 卸载jdk
rpm -e --nodeps jdk版本信息
// 安装jdk
rpm -ivh rpm包
1.5 常用
  • rpm -qa|grep rpm软件包 检查
  • rpm -e --nodeps rpm软件包版本信息 卸载
  • rpm -ivh rpm包 安装

二、tar/tar.gz(解压缩) 安装

2.1 命令
  • tar -zxvf .tar.gz安装包
  • tar -zxvf .tar.gz安装包 -C 指定解压的目录
  • tar -xvf .tar安装包
  • tar -xvf .tar安装包 -C 指定解压的目录
2.2 案例
// 解压文件
[root@VM-20-13-centos sgz]# tar -zxvf apache-tomcat-10.0.23.tar.gz 
// 指定要解压的文件
[root@mycentos7 ~]# tar -zxvf apache-flume-1.5.0-bin.tar.gz -C /tmp
2.3 常用
  • tar -zxvf tar.gz安装包 解压
  • tar -zxvf tar.gz安装包 -C 要解压指定的目录 指定解压的目录
  • tar -xvf .tar安装包
  • tar -xvf .tar安装包 -C 指定解压的目录

三、yum 安装

yum安装需要连接外网,当前网络环境可以上网且可以ping通外网

3.1 命令
yum [选项] [参数] [软件包]

 
 
3.2 选项
-y:对所有提问都回答 ”yes“

 
 
3.3 参数
  • install 安装rpm软件包
  • update 更新rpm
  • check-update 检查是否有可用的更新rpm软件包
  • remove 删除指定的rmp软件包
  • list 显示软件包信息
  • clean 清理yum过期的缓存
  • deplist 显示yum软件包的所有依赖关系
3.4 案例
// 通过yum下载
[root@mycentos7 ~]# yum -y install firefox
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.bfsu.edu.cn
 * extras: mirrors.bfsu.edu.cn
 * updates: mirrors.cqu.edu.cn
base                                                                                        | 3.6 kB  00:00:00     
extras                                                                                      | 2.9 kB  00:00:00     
updates                                                                                     | 2.9 kB  00:00:00     
正在解决依赖关系
--> 正在检查事务
---> 软件包 firefox.x86_64.0.68.10.0-1.el7.centos 将被 升级
---> 软件包 firefox.x86_64.0.91.12.0-2.el7.centos 将被 更新
--> 正在处理依赖关系 nss >= 3.67,它被软件包 firefox-91.12.0-2.el7.centos.x86_64 需要
--> 正在处理依赖关系 nspr >= 4.32,它被软件包 firefox-91.12.0-2.el7.centos.x86_64 需要
--> 正在处理依赖关系 libnss3.so(NSS_3.58)(64bit),它被软件包 firefox-91.12.0-2.el7.centos.x86_64 需要
--> 正在处理依赖关系 libnss3.so(NSS_3.55)(64bit),它被软件包 firefox-91.12.0-2.el7.centos.x86_64 需要
--> 正在处理依赖关系 libnss3.so(NSS_3.52)(64bit),它被软件包 firefox-91.12.0-2.el7.centos.x86_64 需要
--> 正在处理依赖关系 libnss3.so(NSS_3.47)(64bit),它被软件包 firefox-91.12.0-2.el7.centos.x86_64 需要
--> 正在处理依赖关系 libnss3.so(NSS_3.45)(64bit),它被软件包 firefox-91.12.0-2.el7.centos.x86_64 需要
--> 正在检查事务
---> 软件包 nspr.x86_64.0.4.21.0-1.el7 将被 升级
---> 软件包 nspr.x86_64.0.4.32.0-1.el7_9 将被 更新
---> 软件包 nss.x86_64.0.3.44.0-7.el7_7 将被 升级
--> 正在处理依赖关系 nss = 3.44.0-7.el7_7,它被软件包 nss-sysinit-3.44.0-7.el7_7.x86_64 需要
--> 正在处理依赖关系 nss(x86-64) = 3.44.0-7.el7_7,它被软件包 nss-tools-3.44.0-7.el7_7.x86_64 需要
---> 软件包 nss.x86_64.0.3.67.0-4.el7_9 将被 更新
--> 正在处理依赖关系 nss-util >= 3.67.0-1,它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
--> 正在处理依赖关系 nss-softokn(x86-64) >= 3.67.0-1,它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
--> 正在处理依赖关系 libnssutil3.so(NSSUTIL_3.59)(64bit),它被软件包 nss-3.67.0-4.el7_9.x86_64 需要
--> 正在检查事务
---> 软件包 nss-softokn.x86_64.0.3.44.0-8.el7_7 将被 升级
---> 软件包 nss-softokn.x86_64.0.3.67.0-3.el7_9 将被 更新
--> 正在处理依赖关系 nss-softokn-freebl(x86-64) >= 3.67.0-3.el7_9,它被软件包 nss-softokn-3.67.0-3.el7_9.x86_64 需要
---> 软件包 nss-sysinit.x86_64.0.3.44.0-7.el7_7 将被 升级
---> 软件包 nss-sysinit.x86_64.0.3.67.0-4.el7_9 将被 更新
---> 软件包 nss-tools.x86_64.0.3.44.0-7.el7_7 将被 升级
---> 软件包 nss-tools.x86_64.0.3.67.0-4.el7_9 将被 更新
---> 软件包 nss-util.x86_64.0.3.44.0-4.el7_7 将被 升级
---> 软件包 nss-util.x86_64.0.3.67.0-1.el7_9 将被 更新
--> 正在检查事务
---> 软件包 nss-softokn-freebl.x86_64.0.3.44.0-8.el7_7 将被 升级
---> 软件包 nss-softokn-freebl.x86_64.0.3.67.0-3.el7_9 将被 更新
--> 解决依赖关系完成
依赖关系解决
===================================================================================================================
 Package                         架构                版本                               源                    大小
===================================================================================================================
正在更新:
 firefox                         x86_64              91.12.0-2.el7.centos               updates              106 M
为依赖而更新:
 nspr                            x86_64              4.32.0-1.el7_9                     updates              127 k
 nss                             x86_64              3.67.0-4.el7_9                     updates              882 k
 nss-softokn                     x86_64              3.67.0-3.el7_9                     updates              358 k
 nss-softokn-freebl              x86_64              3.67.0-3.el7_9                     updates              337 k
 nss-sysinit                     x86_64              3.67.0-4.el7_9                     updates               66 k
 nss-tools                       x86_64              3.67.0-4.el7_9                     updates              549 k
 nss-util                        x86_64              3.67.0-1.el7_9                     updates               79 k
事务概要
===================================================================================================================
升级  1 软件包 (+7 依赖软件包)
总计:109 M
Downloading packages:
警告:/var/cache/yum/x86_64/7/updates/packages/nss-sysinit-3.67.0-4.el7_9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:
 用户ID     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 指纹       : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 软件包     : centos-release-7-9.2009.0.el7.centos.x86_64 (@anaconda)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在更新    : nspr-4.32.0-1.el7_9.x86_64                                                                    1/16 
  正在更新    : nss-util-3.67.0-1.el7_9.x86_64                                                                2/16 
  正在更新    : nss-softokn-freebl-3.67.0-3.el7_9.x86_64                                                      3/16 
  正在更新    : nss-softokn-3.67.0-3.el7_9.x86_64                                                             4/16 
  正在更新    : nss-3.67.0-4.el7_9.x86_64                                                                     5/16 
  正在更新    : nss-sysinit-3.67.0-4.el7_9.x86_64                                                             6/16 
  正在更新    : firefox-91.12.0-2.el7.centos.x86_64                                                                                                                                                              7/16 
  正在更新    : nss-tools-3.67.0-4.el7_9.x86_64                                                                                                                                                                  8/16 
  清理        : firefox-68.10.0-1.el7.centos.x86_64                                                                                                                                                              9/16 
  清理        : nss-tools-3.44.0-7.el7_7.x86_64                                                                                                                                                                 10/16 
  清理        : nss-3.44.0-7.el7_7.x86_64                                                                                                                                                                       11/16 
  清理        : nss-sysinit-3.44.0-7.el7_7.x86_64                                                                                                                                                               12/16 
  清理        : nss-softokn-3.44.0-8.el7_7.x86_64                                                                                                                                                               13/16 
  清理        : nss-softokn-freebl-3.44.0-8.el7_7.x86_64                                                                                                                                                        14/16 
  清理        : nss-util-3.44.0-4.el7_7.x86_64                                                                                                                                                                  15/16 
  清理        : nspr-4.21.0-1.el7.x86_64                                                                                                                                                                        16/16 
  验证中      : nss-sysinit-3.67.0-4.el7_9.x86_64                                                                                                                                                                1/16 
  验证中      : nss-softokn-freebl-3.67.0-3.el7_9.x86_64                                                                                                                                                         2/16 
  验证中      : nss-3.67.0-4.el7_9.x86_64                                                                                                                                                                        3/16 
  验证中      : nss-util-3.67.0-1.el7_9.x86_64                                                                                                                                                                   4/16 
  验证中      : nspr-4.32.0-1.el7_9.x86_64                                                                                                                                                                       5/16 
  验证中      : firefox-91.12.0-2.el7.centos.x86_64                                                                                                                                                              6/16 
  验证中      : nss-tools-3.67.0-4.el7_9.x86_64                                                                                                                                                                  7/16 
  验证中      : nss-softokn-3.67.0-3.el7_9.x86_64                                                                                                                                                                8/16 
  验证中      : nss-sysinit-3.44.0-7.el7_7.x86_64                                                                                                                                                                9/16 
  验证中      : nss-tools-3.44.0-7.el7_7.x86_64                                                                                                                                                                 10/16 
  验证中      : firefox-68.10.0-1.el7.centos.x86_64                                                                                                                                                             11/16 
  验证中      : nss-3.44.0-7.el7_7.x86_64                                                                                                                                                                       12/16 
  验证中      : nss-util-3.44.0-4.el7_7.x86_64                                                                                                                                                                  13/16 
  验证中      : nspr-4.21.0-1.el7.x86_64                                                                                                                                                                        14/16 
  验证中      : nss-softokn-freebl-3.44.0-8.el7_7.x86_64                                                                                                                                                        15/16 
  验证中      : nss-softokn-3.44.0-8.el7_7.x86_64                                                                                                                                                               16/16 
更新完毕:
  firefox.x86_64 0:91.12.0-2.el7.centos                                                                                                                                                                               
作为依赖被升级:
  nspr.x86_64 0:4.32.0-1.el7_9     nss.x86_64 0:3.67.0-4.el7_9 nss-softokn.x86_64 0:3.67.0-3.el7_9 nss-softokn-freebl.x86_64 0:3.67.0-3.el7_9 nss-sysinit.x86_64 0:3.67.0-4.el7_9 nss-tools.x86_64 0:3.67.0-4.el7_9
  nss-util.x86_64 0:3.67.0-1.el7_9
完毕!
3.5 常用
  • yum -y install 软件包 下载安装
  • yum -y update 软件包 更新
  • yum list 软件包 查询软件包信息
  • yum remove 软件包 删除软件包

特别感谢参考文章

https://blog.csdn.net/fenglepeng/article/details/119296632
https://blog.csdn.net/qq_38288606/article/details/129750103

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值