文章目录
Python打包分发
1.包管理
Python的模块或者源文件直接可以复制到目标项目目录中,就可以导入使用了。但是为了更多项目调用使用,或者共享给别人,就需要打包,或发布到网络,以便供人使用。目的也是为了复用。
- Pypi(Python Package Index),公共的模块存储中心,https://pypi.python.org/pypi
2.打包的主要工具
- distutils
- 官方库distutils,使用安装脚本setup.py 来构建、安装包。
- 从1998年就是标准库的一部分,直到2000年停止开发。
- setuptools
- 它是替代distutils的增强版工具集,包含easy_install工具,使用ez_setup.py文件。支持egg格式的构建和安装。 提供查询、下载、安装、构建、发布、管理等包管理功能。
- setuptools是包管理的核心模块。后来,setuptools开发缓慢了,出现基于setuptools的distribute来替代setuptools。2013年,这两个项目重新合 并,distribute被废弃,setuptools依然是Python安装打包的标准方式。
- pip
- pip目前包管理的事实标准。
- 构建在setuptools之上,替代easy_install的。同样提供丰富的包管理功能。
- Python3.4之前,需要单独安装,从Python3.4开始直接包含在安装文件中。
- wheel
- wheel格式定义在PEP427中。wheel文件中不包含.pyc文件。
- 提供 bdist_wheel 作为 setuptools 的扩展命令,这个命令可以用来生成新打包格式 wheel。
- pip 从1.4版本开始 提供了一个 wheel 子命令来安装 wheel 包。当然,需要先安装 wheel 模块。 它可以让Python库以二进制形式安装,而不需要在本地编译。
3.使用setup.py打包
setup.py创建一个源代码分发包的例子,参照例子 https://docs.python.org/3.5/distutils/setupscript.html。 可以在帮助文档chm上搜索索引setup,点击上面的Distributing Python Modules (Legacy version) ,然后选 择 Writing the Setup Script
-
包结构如下:
-
在项目根目录,构建一个setup.py文件。setup.py文件内容如下:
from distutils