Python打包工具distutils的使用

本篇博客介绍的是使用distutils + setup.py 打包发布自定义的python包。

假设python工程目录结构如下,
Python打包工具distutils的使用_第1张图片
一个比较简单的需求:
在打包时,我们希望

  • 对于一些pkg,全部打包(所有py文件),对于其他pkg,部分打包。
  • 打包pkg里的配置文件
  • 打包不属于任何pkg的模块(单个py脚本)

为了满足上述需求,setup.py 脚本编写如下:

from distutils.core import setup
setup(
package_dir={'':'python'},
packages=['pkg1'],
package_data={'': ['config/1.txt']},
py_modules=['pkg2.p21','test1']
)

为了简单起见,上述setup.py 省略了对待生成包名字/版本等描述。

解释:
1.package_dir描述了setup.py脚本与待打包pkg的路径关系: 是个字典类型,value表示以setup.py为起点的相对路径。
2 packages 是在package_dir指定路径下的python pkg(必须有__init__.py), 可以写多个。
3 package_data 填写准备打包的配置文件。
4 py_modules 填写待打包的单个脚本,比如例子中的pkg2,有时侯并不像把pkg2里的所有脚本都打包,或者有时侯需要打包不属于任何pkg的脚本(比如test1.py),此时用py_modules就比较方便。

打包:

python setup.py bdist (这里有多种参数可选择)

打包结果 :会生成一个build和dist目录。
Python打包工具distutils的使用_第2张图片
本机安装测试
可以用 sudo python setup.py install --record installed.txt 在本机安装验证,
加 --record installed.txt 是为了记录安装路径,方便验证完删除。
安装后,可以去python系统目录下验证是否安装成功。
Python打包工具distutils的使用_第3张图片
开启一个终端,测试安装成功。
Python打包工具distutils的使用_第4张图片

参考
How to writing the setup script :https://docs.python.org/2/distutils/setupscript.html

你可能感兴趣的:(python)