zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Spring IoC
    Java软件安装
    Struts(一)
    Struts(二)
    Hibernate(六)
    Hibernate(五)
    Hibernate(二)
    Hibernate(四)
    Hibernate(三)
    Hibernate(一)
  • 原文地址:https://www.cnblogs.com/geeklove01/p/8280939.html
Copyright © 2011-2022 走看看