python--------------------------包管理

本文详细介绍了Python包管理的重要性及常用工具,包括distutils、setuptools、pip和wheel的使用方法,以及如何通过setup.py进行打包、安装和发布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

包管理

为什么使用包管理
Python的模块或者源文件直接复制到目标项目目录中,就可以导入使用了
但是为了更多想木雕用使用,或者分享给别人,就需要打包,就需要打包,或发布到网络,以便供人使用.
目的也是为了复用.
Pypi(Python Package Index),公共的米快存储中心,ht tps://Python.org/pypi
主要工具
distutils
官方库distutils,使用安装脚本setup.py来创建,安装包.
从1998年就是标准库的一部分,知道2000年停止开发.
setuptools
它是替代disutils的挣钱版工具箱, 包含easy_install工具箱, 使用ez_setup.py文件.支持egg格式的此案件和安装.提供查询,下载,安装,构建,法不,管理等包管理功能.setuptools是包管理的核心模块.
后来,setuptools开发缓慢了,出现居于setuotools的distribute来代替setuptools.2003年这连个项目从新合并,distribute被废弃,setuptools依然是Python安装打包的标准方式.
pip
pip目前包管理定义在PEP427中.
wheel文件不包含.pyc文件.提供bdist_wheel作为setuptools的扩展命令,这个命令可以用来生成打包格式wheel.
pip从1.4版本开始 提供了一个wheel之命令来安装wheel包,当然,需要安装wheel模块.
它可以让Python库以二进制安装,而不需要在本地编译.

使用setup.py打包

setup.py传概念一个源代码分法宝的例子
可以在帮助文档chm上搜索索引setup,点击最上面的Distributing Python Modules(legacy version),然后选择writing the Setup Script

m
|--__init__.py
|--m1.py
|--m2
    |--__init__.py
    |--m21
        |--__init__.py
    |--m22.py

项目根目录下,创建一个setup.py文件,setup.py如下

from distutils.core import setup

setup(name = 'm',
      version='0.0.1',
      description= 'Python test m',
      author='seven',
      author_email='abc#qwe.com',
      packages = ['m']
      )

builed命令,编译

创建一个builed目录
$ Python srtup.py build
以下是packages=[‘m’]配置的结果

running build
running build_py
creating build
creating build\lib
creating build\lib\m
copying m\m1.py -> build\lib\m
copying m\setup.py -> build\lib\m
copying m\__init__.py -> build\lib\m

在项目目录下多了build目录,有一个lib目录,lib就是模块m的目录了.
m目录下的*.py文件被复制了,但是子目录没有被复制.
以下是packages=['m.m2.m21]配置结果

running build
running build_py
creating build\lib\m\m2
creating build\lib\m\m2\m21
copying m\m2\m21\__init__.py -> build\lib\m\m2\m21  

build得到的文件,直接拷贝到其他项目就可以用
install命令,安装
build后就可以install,直接运行
$ python setup.py install
如果没有build,会先build编译,然后安装.
p y t h o n s e t u p . p y s d i s t 创 建 源 代 码 的 分 发 包 产 生 一 个 d i s t 目 录 , 里 面 生 成 一 个 带 版 本 号 的 压 缩 包 . 在 其 他 地 方 解 压 缩 这 个 文 件 , 里 面 有 s e t u p . p y , 就 可 以 使 用 python setup.py sdist 创建源代码的分发包 产生一个dist目录,里面生成一个带版本号的压缩包. 在其他地方解压缩这个文件,里面有setup.py,就可以使用 pythonsetup.pysdistdist,.,setup.py,使python setup.py install安装了,也可以$pip install m-0.1.0.zip直接使用pip安装这个压缩包.
bdist命令
二进制分发包,或称作安装程序.它可以生成目标操作系统的安装程序.

制作windows下的安装包
$ python setup.py bdist_wininst
$ python setup.py bdist_msi
$ python setup.py bdist --format=msi

rpm包
$ python setup.py bdist_rpm
$ python setup.py bdist --format=rpm

压缩文件
$ python setup.py bdist --format=zip
$ python setup.py bdist --format=gztar

可以把自己写好的模板发布到公共的Pypi上,也可以待见Pypi私服,共企业内部使用.
Pypi里面的米快没有太好的审核机制,不保证安全,请谨慎使用.
wheel
安装wheel依赖
$ pip install wheel
setup.py 修改如下

# from distutils.core #from distutils.core import setup
from setuptools import setup

setup(name='m',
      version='1.0',
      description='Python test Utilities',
      author='seven',
      author_email='abc@avc.com',
      url='https://www.python.org/sigs/distutils-sig/',
      packages=['m.m2.m21'],
     )
python setup.py bdist_egg  
python setup.py bdist_wheel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值