• python之模块distutils,打包工具


    # -*- coding: utf-8 -*-
    #python 27
    #xiaodeng
    #python之模块distutils,打包工具
    
    
    
    import distutils
    #distutils包有2个目的:
    1)distutils希望让最终用户觉得安装新模块、包和工具的过程一致而轻松
    2)distutils希望让新模块、包和工具的开发者觉得创建这些容易安装的分发包很轻松
    
    总得来说,distutils就是用来打包的模块.
    
    
    
    #2、用distutils如何打包?
    #http://blog.csdn.net/five3/article/details/7847551
    #setup.py
    import codecs
    import os
    import sys
    '''打包的用的setup必须引入'''
    from distutils.core import setup
        
    
    def read(fname):
        '''
        定义read(),用来读取目录下的长描述
        我们一般将README文件中的内容读取出来叫做长描述,这个会在pypi中你的包的页面展现出来
        你也可以不用此办法,直接手动写内容
        pypi上支持.rst格式的文件,暂时不支持md格式;rst格式的文件在pypi上会自动转化为html形式显示在你的包的信息页面上
        '''
        return codecs.open(os.path.join(os.path.dirname(__file__),fname)).read()
    
    
    #setup函数参数说明
    #--------------------------------------------------------------------------#
    NAME='MyTest'
    '''名字:一般填写包的名字即可'''
    
    
    PACKAGES=['MyTest']#需要打包的目录列表
    '''包:放置模块的名字,list形式,可放置多个;告诉Distutils需要处理那些包(包含__init__.py的文件夹)'''
    
    
    DESCRIPTION='my first package'
    '''描述:关于这个包的基本描述'''
    
    
    LONG_DESCRIPTION=read('README.rst')
    '''查查看包的具体更加详细的说明'''
    
    
    KEYWORDS='test python package keyword'
    '''当前包的关键词,方便pypi分类'''
    
    
    AUTHOR='xiaodeng' #作者
    AUTHOR_EMAIL='drgs156@163.com'
    URL='http://blog.sina.com.cn/u/3712558093'#项目地址,没有可写pypi上该包的地址
    VERSION='1.0.1'
    LICENSE='MIT'#授权方式
    
    
    #这3项变量未添加到setup变量中,测试时可添加进入试试.
    DOWNLOAD_URL='' #程序的下载地址
    DATA_FILES=''#打包时需要打包的数据文件,如图片,配置文件等
    SCRIPTS=''  #安装时需要执行的脚步列表
    
    
    #构造setup
    setup(
        name=NAME,
        version=VERSION,
        description=DESCRIPTION,
        long_description=LONG_DESCRIPTION,
        classifiers=[
            'License :: OSI Approved :: MIT License',
            'Programming Language ::Python',
            'Intended Audience :: Developers',
            'Operating System :: OS Independent',
            ],
        keywords=KEYWORDS,
        author=AUTHOR,
        author_email=AUTHOR_EMAIL,
        url=URL,
        license=LICENSE,
        packages=PACKAGES,
        include_package_data=True,
        zip_safe=True,
        py_modules=['test','test1','test2'],     #填写你的模块py文件,就是要打包的python文件列表
        )
    
    
    '''
    安装
    >>> python setup.py sdist // 源码安装包
    >>> python setup.py bdist_wininst //Windows 下使用
    >>> python setup.py bdist_rpm //Linux 下使用
    '''
  • 相关阅读:
    UE4 ios环境搭建备忘
    我所理解的打击感 逐帧分析过几十款游戏的开发者经验分享
    可重入锁和不可重入锁
    Java中JDK和JRE的区别是什么?它们的作用分别是什么?
    Java开发岗位面试题
    详解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
    docker:轻量级图形页面管理工具Portainer
    Docker整合dockerfly实现UI界面管理(单机版)
    docker for mac的JSON配置文件中的hosts项修改后无法生效
    Maven [ERROR] 不再支持源选项 5。请使用 6 或更高版本
  • 原文地址:https://www.cnblogs.com/dengyg200891/p/4948870.html
Copyright © 2020-2023  润新知