Python包

      包用于将一组模块归并到一个目录中,此目录即为包,目录名即为包名。

      包是一个有层次的文件目录,它定义了一个由模块和子包组成的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 的使用

       

      安装包:

         python setup.py install  

              两个过程:       build  &&  install:

              python setup build   目录生成在当前目录

                           --build-base=/path/to/build_dir

                                    lib(纯python编译好的文件),lib.platform(无法实现跨平台的编译好的                                     文件) 两个目录保存即将安装的模块文件

         第三方模块默认的安装路径通常为 :site-packages

                  /usr/lib/python2.7/site-packages

         自定义安装路径:

          普通用户:

                  --user=  普通用户将模块安装至自己家目录下的某些特定目录

          对于公共目录有些权限的:

                  --prefix=  安装在自己所定义的别的目录中

                  --exec-prefix=  用于指定跟平台相关的已经编译好的文件的安装路径

          深度定制:

                --install-purelib=/path/to/python_lib

                --install-platlib=/path/to/plat_lib 

                     --install-lib=/path/to/lib

                --install-scripts=/path/to/bin    可执行文件的安装路径

                --install-data=                           数据文件

                --install-headers=                     C代码 

            

原文地址:https://www.cnblogs.com/Beny-Bruce/p/5140859.html