# -*- 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 下使用 '''