Python 打包管理工具 setuptools

2019-04-08  本文已影响0人  tafanfly

setuptools是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。

安装

sudo apt-get install python-setuptools

wget http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py

导入setup模块

导入setup模块有两种方式, 如下:

from setuptools import setup
from distutils.core import setup

distutils是Python标准模块,负责建立Python扩展模块的安装器用的。而setuptools第三方模块, 相比而言拥有更多的优点。如下:

setup文件模板

from setuptools import setup, find_packages


setup(
    name='Demo',
    version=0.1,
    description='For Testing',
    author='',
    author_email='',
    url='',
    package_dir={'': 'src'},
    packages=find_packages('src'),
    package_data={'': ['*.ini', '*.txt']},
    install_requires=[
        'requests', 'Flask'],
    platforms='any',
    scripts=['runner'],
)

打包

(1)Source distribution
使用 sdist 可以打包成 source distribution,支持的压缩格式有:

Format Description Notes
zip zip file (.zip) Windows 默认
gztar gzip’ed tar file (.tar.gz) Unix 默认
bztar bzip2’ed tar file (.tar.bz2)
xztar xz’ed tar file (.tar.xz)
ztar compressed tar file (.tar.Z)
tar tar file (.tar)

使用方式为:

$ python setup.py sdist --formats=gztar,zip

现在目录下多出 dist 目录,dist 内保存了我们打好的包Demo-0.1.tar.gz,上面命令使用 --formats 指定了打出 .tar.gz 和 .zip 包,如果不指定则如上表根据具体平台默认格式打包。
(2)Built distribution
使用 bdist 可以打出 built distribution,和源码包相比,由于预先构建好,所以安装更快:

Format Description Notes
gztar gzipped tar file (.tar.gz) Unix 默认
bztar bzipped tar file (.tar.bz2)
xztar xzipped tar file (.tar.xz)
ztar compressed tar file (.tar.Z)
tar tar file (.tar)
zip zip file (.zip) Windows 默认
rpm RPM
pkgtool Solaris pkgtool
sdux HP-UX swinstall
wininst self-extracting ZIP file for Windows
msi Microsoft Installer.

使用上,和 sdist 一样,可以使用 --formats 指定包格式。如:

$ python setup.py bdist --formats=rpm

同时为了简化操作,setuptools 提供了如下命令:

Command Formats Notes
bdist_dumb tar, gztar, bztar, xztar, ztar, zip Windows 默认 zip, Unix 默认 gztar
bdist_rpm rpm, srpm
bdist_wininst wininst
bdist_msi msi

所以上面打 rpm 包可以使用:

$ python setup.py bdist_rpm

如果使用 bdist_wininst,打出来的是 exe 安装文件,可以点击安装。
(3) Wheel
Wheel 也是一种 built 包,而且是官方推荐的打包方式。
使用 wheel 打包,首先要安装 wheel:

$ pip install wheel

然后使用 bdist_wheel 打包:

$ python setup.py bdist_wheel

资料

关于python中的setup.py
Python包管理工具setuptools详解
Python打包分发工具setuptools

上一篇 下一篇

猜你喜欢

热点阅读