Python打包工具setuptools的使用

Posted geeklove01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python打包工具setuptools的使用相关的知识,希望对你有一定的参考价值。

将我们写的Python程序发布成包后,可以使其能够安装使用。

在项目上测试的时候,某些情况下,可以将Python打包,然后上传到测试服务器,安装测试。

setuptools是常用的打包工具。

一个简单的setup.py文件如下:

from setuptools import setup, find_packages
setup(
    name = "my_demo",
    version = "0.1",
    packages = find_packages()
)

其中,name是包的名字,version是版本。

给packages指定find_packages(),意为包括在本目录下的所有Python包。

什么是Python包呢?在Python 3.2及更早版本中,只有包含__init__.py文件才能识别为Python包。

那要是不想包含某些包呢?给find_packages指定exclude参数即可。

那如果我们想将数据文件也添加进来呢?有以下方法(以下:package_data:数据文件,即一些txt或者dat文件 ):

方法一

在使用版本控制的情况下(先包含全部数据文件,再指定去除):

packages = find_packages(‘src‘),  # 包含所有src目录下的package
    package_dir = {‘‘:‘src‘},   

    include_package_data = True,    # 包含所有版本控制的内容

    # 排除所有 README.txt
    exclude_package_data = { ‘‘: [‘README.txt‘] }

方法二(直接指定包含哪些数据文件):

packages = find_packages(src),  # 包含所有src中的包
    package_dir = {‘‘:src},   # 告诉distutils包都在src下

    package_data = {
        # 如果包中含有.txt文件,则包含它
        ‘‘: [*.txt],
        # 包含demo包data文件夹中的 *.dat文件
        demo: [data/*.dat]
}

其他的一些常用参数:

zip_safe,指定boolean选项,控制项目能否直接通过压缩文件安全安装。

install_requires:安装依赖

entry_points: 创建控制台脚本 详情

等等

可以使用命令:

python setup.py bdist_egg

来创建egg文件,egg文件可以跨平台,便于使用pip安装。

也可以使用命令:

python setup.py sdist

来创建源发布版本

其他一些setup.py文件的参数选项
 python setup.py build     #编译
 python setup.py install 
   #安装
 python setup.py sdist 
     #制作分发包
 python setup.py bdist_wininst    #制作windows下的分发包
 python setup.py bdist_rpm

 

参考:

https://setuptools.readthedocs.io/en/latest/setuptools.html

 






以上是关于Python打包工具setuptools的使用的主要内容,如果未能解决你的问题,请参考以下文章

python模块的打包setuptools

Python打包分发工具setuptools

setuptools包的使用

[工具] 利用setuptools打包python程序

python如何将自己写的代码打包供他人使用

python怎么打包整个项目