#目的是:编写,发行python包可重复过程
"""
1:是缩短开始真正工作之前所需要的设置时间,也就是提供模板
2:提供编写包的标准化方法
3:简化测试驱动开发方法的使用
4:为发行过程提供帮助
5:用于所有包公用模式,描述所有python包之间相同之处和distutils和setuptools如何扮演核心角色
6:产生式编程:(在维基百科里面搜索)如何通过基于模板方法对此提供帮助
7:包模板创建,设置各种工作所需要的一切
8:构建一个开发周期
"""
#用于所有包公用模式
"""
主要通过应用程序,有一组和主egg相结合egg,所有的包都可以通过egg来实现
egg的概念:
是通过对一个提供公用的前缀名空间的嵌套文件夹代码进行分层来完成的
制作方式:http://blog.csdn.net/turkeyzhou/article/details/8876658
根目录下面有一个名为setup.py的脚本文件,定义了distutils描述的所有方法,然后进行合并为一个标准的setup函数体,需要通过第三方库:setuptools模块来扩展
文件中至少存在以下内容
"""
from setuptools import setup
#setup(name=‘acme.sql‘)
#结果
"""
usage: gui.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: gui.py --help [cmd1 cmd2 ...]
or: gui.py --help-commands
or: gui.py cmd --help
error: no commands supplied
"""
#也可以通过在cmd下面python setup.py -help-commands方法来获取更多内容
#Standard commands(标准命令)是distutils内建方法;Extra commands(附加命令)是第三方的
#sdist:创建一个发行树,运行一个包所需要一切内容都将复制在这边,然后进行归档到一个或者多个地方
setup(name=‘acme.sql‘,version=‘0.0.1‘)#version#版本号
#结果
"""
usage: gui.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: gui.py --help [cmd1 cmd2 ...]
or: gui.py --help-commands
or: gui.py cmd --help
error: no commands supplied
"""
#也可以通过在cmd下面python gui.py sdist方法来获取更多内容;windows下面是一个zip文件
#Manifest.in文件
"""
distutils查找包含在档案里面的文件
包含
‘‘‘
所有的py_modules,packages,script选项隐含的python源文件
所有在ext_modules选项中列出的c源文件
符合test/test*.py模式的文件
README,README.txt,setup.py,setup.cfg文件
‘‘‘
如果包是由Subversion或者CVS管理,会把.svn之类的文件夹以查找其包含的文件,sdist将创建一个列出所有文件的Manifest文件
,然后对它们进行档案处理
如下规则
include HISTORY.txt......
#完整命令于http://docs.python.org/dist/中查找
sdist-cmd.html
"""
#build和bdist
"""
build_py是通过字节编译构建纯python模块,复制到构建文件中
build_clib 当含有c程序时,使用python编译工构建文件夹中创建一个静态程序库
build_ext编译c扩展,将结果放在类似build_clib构建文件中
build_script编译标记为脚本模块,当第一行被设置为(!#)时修改触发程序路径并修复文件模式使其可执行
"""