#目的是:编写,发行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编译标记为脚本模块,当第一行被设置为(!#)时修改触发程序路径并修复文件模式使其可执行
"""

python高级编程 编写一个包1的更多相关文章

  1. Python网络编程——编写一个简单的回显客户端/服务器应用

    今天将python中socket模块的基本API学习完后,照着书上的实例编写一个套接字服务器和客户端.采用python3.5版本,在注释中会标明python2和python3的不同之处. 1.代码 ( ...

  2. python高级编程:有用的设计模式2

    # -*- coding: utf-8 -*- __author__ = 'Administrator' #python高级编程:有用的设计模式 #代理 """ 代理对一 ...

  3. python高级编程:有用的设计模式1

    # -*- coding: utf-8 -*-__author__ = 'Administrator'#python高级编程:有用的设计模式#设计械是可复用的,某种程序上它对软件设计中觉问题提供的语言 ...

  4. python高级编程技巧

    由python高级编程处学习 http://blog.sina.com.cn/s/blog_a89e19440101fb28.html Python列表解析语法[]和生成 器()语法类似 [expr  ...

  5. python高级编程之选择好名称:完

    由于时间关系,python高级编程不在放在这边进行学习了,如果需要的朋友可以看下面的网盘进行下载 # # -*- coding: utf-8 -*- # # python:2.x # __author ...

  6. python高级编程读书笔记(一)

    python高级编程读书笔记(一) python 高级编程读书笔记,记录一下基础和高级用法 python2和python3兼容处理 使用sys模块使程序python2和python3兼容 import ...

  7. python高级编程之列表推导式

    1. 一个简单的例子 在Python中,如果我们想修改列表中所有元素的值,可以使用 for 循环语句来实现. 例如,将一个列表中的每个元素都替换为它的平方: >>> L = [1, ...

  8. Python高级编程之生成器(Generator)与coroutine(二):coroutine介绍

    原创作品,转载请注明出处:点我 上一篇文章Python高级编程之生成器(Generator)与coroutine(一):Generator中,我们介绍了什么是Generator,以及写了几个使用Gen ...

  9. 第三章:Python高级编程-深入类和对象

    第三章:Python高级编程-深入类和对象 Python3高级核心技术97讲 笔记 3.1 鸭子类型和多态 """ 当看到一直鸟走起来像鸭子.游泳起来像鸭子.叫起来像鸭子 ...

随机推荐

  1. (转)iOS7界面设计规范(11) - UI基础 - 图标与图形

    不知别人如何,我自己来讲,平时很习惯很有动力去做的一些事,譬如博客吧,一旦生活中出现一些让自己很难受的状况,就很容易受到影响:像是,你平时所习惯的生活状态都是基于某种东西的,一旦这种东西崩塌,会影响到 ...

  2. Makefile学习(一)变量

    鉴于之前有一些了解,还有自己的学习习惯,我一上来就看Makefile的变量这一章.主要脉络是根据GNU make中文手册. 第六章:Makefile中的变量 6使用变量 定义:变量是一个名字,代表一个 ...

  3. eclipse注释模板修改

    http://swiftlet.net/archives/1199 以下为模板文件 <?xml version="1.0" encoding="UTF-8" ...

  4. python-文件操作(1)

    本文内容涉及python打开/创建文件对象,文件的读写.文件指针位置的移动.获取命令行参数. 1. open() open函数以指定模式返回一个file对象,如: file_object = open ...

  5. mp4文件格式之fragment mp4

    目前网络上对mp4文件格式的总结已经相当多了,我就不在这里抄别人总结的东西了,想入门的话百度一下会有许多这方面的文章.这里介绍一下其他文章中很少涉及的一种mp4文件结构,即fragment mp4,也 ...

  6. 推荐一款JSON字符串查看器

    JSON Viewer是一款方便易用的Json格式查看器.Json格式的数据阅读性很差,如果数据量大的话再阅读方面会十分困难,有了这软件,问题就解决了,能够快速把Json字符串排列规则的树结构,支持对 ...

  7. (转)log4net使用详解

    说明:本程序演示如何利用log4net记录程序日志信息.log4net是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括M ...

  8. SQL Server类型与C#类型对应关系

    SQL类型 C#类型 bit bool tinyint byte smallint short int int bigint long real float float double money de ...

  9. HBase -ROOT-和.META.表结构(region定位原理)

    在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer.什么叫相应的RegionServer?就是管理你要操 ...

  10. AngularJS中ng-options简单用法及预选项失败的原因

    刚刚接触AngularJs,记录一下ng-options的使用. 1.构造key-value数据 $scope.types = [ {id:"1",type:"AA&qu ...