python打包工具distutils的使用

参考:http://www.pythoncentral.io/package-python-django-application-reusable-component/

执行python setup.py sdist既可以打包

from distutils.core import setup
setup(
    name = "dennings",
    version = "0.0.2",
    author = "shijian",
    packages=['denning','templates'],
    py_modules=['__init__','config', 'manage', 'settings', 'urls','wsgi'],
    data_files=[('ini',['django_wsgi.ini']),('readme',['readme.txt'])]
)

写完之后,发现静态文件都没有打包。
然后查看下打包信息,你会发现:

writing manifest file 'MANIFEST'

表示,他在执行打包的时候,会写入到这个文件中。
那么静态文件呢?
在项目目录下,添加如下配置文件MANIFEST.in:
文件内容:

recursive-include templates *
不要忘记写*

再次执行python setup.py sdist,显示如下。

reading manifest template 'MANIFEST.in'
writing manifest file 'MANIFEST'
如果你的结果显示warning,注意文件的权限问题。
chmod +x  MANIFEST.in

参数说明:
1、name
site-package安装目录下的egg文件:/usr/lib64/python2.6/site-packages/cython_build_test-0.0.0-py2.6.egg-info,如果不指定,将会与UNKNOW命名:/usr/lib64/python2.6/site-packages/UNKNOWN-0.0.0-py2.6.egg-info
2、packages告诉Distutils需要处理那些包(包含init.py的文件夹)
3、package_dirs告诉Distutils哪些目录下的文件被映射到哪个源码包。一个例子:package_dir = {‘’:lib},表示“root package”中的模块都在lib目录4、ext_modules是一个包含Extension实例的列表,Extension的定义也有一些参数,定义如下
5、ext_package定义extension的相对路径
6、requires定义依赖哪些模块
7、provides定义可以为哪些模块提供依赖
8、scripts指定python源码文件,可以从命令行执行。在安装时指定―install-script
9、package_data通常包含与包实现相关的一些数据文件或类似于readme的文件。如果没有提供模板,会被添加到MANIFEST文件中。
10、data_files指定其他的一些文件(如配置文件)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值