包用于将一组模块归并到一个目录中,此目录即为包,目录名即为包名。
包是一个有层次的文件目录,它定义了一个由模块和子包组成的Python应用程序执行环境。基于包,Python在执行 模块导入时可以指定模块的导入路径
import dir1.dir2.mod1
包导入语句的路径内每个目录内必须有__init__.py 文件。 __init__.py可包含Python代码,但是通常为空,仅拥有扮演包初始化的挂钩,替目录产生模块名称空间已经使用目录导入时实现 from * 行为的角色。
一个模块文件可以同时支持顶层执行(作为顶层文件)或被导入(作为模块文件)。每个模块都有个名为__name__的内置属性,Python会自动设置该属性。如果文件是以顶层程序文件执行,在启动时,__name__的值为“__main__"。 如果被导入,则__name__的值为模块名。
可以在模块文件中检测自己的__name__属性,以致实现在执行时运行指定代码,常用于模块的自我测试。
if __name__ == "__main__":
testFunc()。。。。。。。
发布Python模块或程序
压缩文件:使用distutils Windows的zip文件和类Unix平台的.tar.gz文件(源码)
自动解包或自动安装可执行文件:Windows的.exe文件
自包含的,不要求安装的预备运行科执行程序: Windows的.exe文件,Unix上带有一个小的脚本前缀的ZIP压缩文件、Mac上的.app等
平台相关的安装程序:Windows的.msi文件,Linux常见的.rpm src.rpm .deb文件等
Python eggs 较流行的第三方扩展。
distutils模块能够帮助完成模块或程序的发布
发布是指一个文件集合,这些文件联合在一起可以使用distutils构建、打包和发布模块。创建好的发布可以用于安装,也可上传到PyPI与他人共享。
创建发布:将各代码文件组织到模块容器中-----准备一个TEADME或README.TXT文件----而后在容器中创建setup.py文件。
py_modules 各模块名称组成的列表,这些模块可能位于包的根目录下(modname), 也可能位于某子包目录中(subpkg1.modname)
platforms 平台列表
license 许可证
packages 各子包名称的列表
python setup.py sdist 在要发布的目录中执行此命令即可完成打包 --formats=
可以sdist指定格式:
zip---zip gztar--tar.gz bztar----tar.bz2 ztar---tar.Z tar----tar
setup.py bdist 二进制发行版--安装包 --formats=
gztar--tar.gz ztar---tar.Z tar---tar zip---zip rpm---RPM Package
pkgtool---Solaris pkgtool wininst---Windows上自解压的zip格式包
msi---Microsoft Installer
bdist_dump:
bdist_rpm:
bdist_wininst:
bdist_msi:
获取帮助 python setup.py --help
python setup.py --help-commands 所有可使用命令
python setup.py COMMAND --help 特定命令帮助
python setup.py --help-formats 可用格式
rpm -qpi dist/pkg1-0.1-1.noarch.rpm
pip, easy_install 的使用
原文:http://www.cnblogs.com/Beny-Bruce/p/5140859.html