[2015-08-13] python023
来源:互联网 发布:sql server insert语句 编辑:程序博客网 时间:2024/05/20 02:56
Python包
- 包用于将一组模块归并到一个目录中,此目录即为包,目录名即为包名
- 包是一个有层次的文件目录结构,它定义了一个由模块和子包组成的Python应用执行环境
- 基于包,Python在执行模块导入时可以指定模块的导入路径:
- import dir1.dir2.mod1
- import dir1.dir2.mod1
模块的顶层执行及被导入:
一个模块文件可以同时支持顶层执行(作为顶层文件)或被导入(作为模块文件)
每个模块都有个名为__name__的内置属性,Python会自动设置该属性 如果文件是以顶层程序文件执行,在启动时,__name__的值为"__main__" 如果是被导入,则__name__的值为模块名 可以在模块文件中检测自己的__name__属性,以之实现在执行时运行指定的代码 常用于模块的自我测试: #!/usr/bin/python # def testFunc(): print "hello,..." if __name__ == "__main__": testFunc()
发布Python模块或程序:
Python模块、扩展和应用程序可以按以下几种形式进行打包和发布
- 压缩文件(使用distutils)
- Windows的zip文件和类Unix平台的.tar.gz文件
- 自动解包或自动安装可执行文件
- Windows中的.exe文件
- 自包含的,不要求安装的预备运行可执行程序
- Windows的.exe文件、Unix上带有一个小的脚本前缀的ZIP压缩文件、Max上的.app文件等
- 平台相关的安装程序
- Windows上的.msi文件、Linux上常见的.rpm、src.rpm和.deb文件等
- Python eggs
- 较流行的第三方扩展
使用distutils发布模块:
- disutils模块能够帮助完成模块或程序发布
- 发布”是指一个文件集合,这些文件联合在一起可使用distutils构建、打包和发布模块
- 创建好的发布可以用于安装,也可上传到PyPI与他人共享
- 创建发布
- 将各代码文件组织到模块容器中
- 准备一个README或README.txt文件
- 而后在容器中创建setup.py文件
- setup.py的常用参数:
name 包的名称(必须) Version 版本号(必须) author author_email maintainer maintainer_email py_modules 各模块名称组成的列表,此些模块可能位于包的根目录下(modname),也可能位于某子包目录中(subpkg1.modname) platforms 平台列表 license 许可证 packages 各子包名称的列表 url download_url 大体分为两类:元数据信息和包中的内容列表
完成打包:
在要发布的容器目录中执行”python setup.py sdist”命令打包格式:
python setup.py sdist 可以为sdist指定格式:--formats=*** zip: zip file gztar: tar.gz file bztar: tar.bz2 file ztar: tar.Z file tar: tar file python setup.py bdist 可以为bdist指定格式:--formats=*** gztar: tar.gz file ztar: tar.Z file tar: tar file zip: zip file rpm: RPM Package pkgtool: Solaris pkgtool wininst: Windows上自解压的zip格式的包 msi: Microsoft Installer
- 获取帮助的方式:
python setup.py --help python setup.py --help-commands 所有可以使用的命令,如build,install python setup.py COMMAND --help 获取特定命令的帮助 python setup.py COMMAND --help=formats 获取特定命令支持使用的格式
0 0
- [2015-08-13] python023
- 2015-08-13
- 2015-08-13NOIP模拟赛
- hdoj.5097 Page Rank【矩阵】 2015/08/13
- [2015-08-08] python019
- hdoj.5099 Comparison of Android versions【字符串处理,水题】 2015/08/13
- 小白学开发(iOS)OC_ 字符串重组(2015-08-13)
- 小白学开发(iOS)OC_ 字符串写入文件(2015-08-13)
- HNU Knockout Racing 分类: ACM 2015-08-03 13:35 1人
- 2015-08-10-----2015-08-11
- 2015/02/08
- 08-04-2015 Recursion
- [2015-08-01] python012
- [2015-08-02] python013
- [2015-08-02] python014
- 2015-08-02
- 2015-08-03
- [2015-08-04] python015
- Eclipse下的SVN插件中暂时没有提供更改用户名和密码的功能
- [推荐系统]mahout中实现的几种相似度计算方法
- 《Objective-C基础教程》第11章 属性
- i = i++为什么会是i原来的值??
- OpenCV进阶之路:神经网络识别车牌字符
- [2015-08-13] python023
- 通配符和正则表达式
- iOS 审核加急 可以用中文了 。。
- Unity 翻书效果
- HDOJ2041 超级楼梯(dp & 打表)
- HDU 1124 Factorial(数论)
- NZND壳-第二天
- 移动端视频通话软件
- ViewPager的PagerAdapter.notifyDataSetChanged()