• 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

    来创建源发布版本,此后可通过pip install来安装生成的tar.gz包

    其他一些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

  • 相关阅读:
    excel 批量修改sql
    js select 改变当前选中option
    servlet 显示服务器上的图片
    @Security权限验证拦截参数
    签字 变成 图片 纯js+html实现
    web 的项目 搭乘war包,运行时候却找不到jar包
    jquery监听扫码枪获得值
    妹子的js 万一哪一天资源找不到了 记录下来
    react系列---【redux安装、创建仓库】
    react系列---【redux进阶】
  • 原文地址:https://www.cnblogs.com/geeklove01/p/8280939.html
Copyright © 2020-2023  润新知