Python 分发包中添加额外文件的方法


Posted in Python onAugust 16, 2019

在制作一个 Python 分发包时经常需要把一些文件添加到包中。最常见的例子是你希望通过 
pip install 命令安装 Python 包时会在 
/etc/ 等目录下自动添加默认配置文件,由此可以让 Python 安装完成就可以工作,同时也可以给用户提供配置样例参考。

参考 Installing Additional Files

如果使用 setuptools,在 setup.py 文件中可以通过 data_files 配置项配置分发包的额外文件, 格式为: (<安装位置>, [<文件1>, <文件2>, ...])

# setup.py
from setuptools import setup
setup(...,
  data_files=[('bitmaps', ['bm/b1.gif', 'bm/b2.gif']),
     ('config', ['cfg/data.cfg'])],
 )

上面的示例 <安装位置> 使用了相对路径,在安装时会根据安装前缀如 sys.prefix (系统级安装) 和 site.USER_BASE (用户级安装)解释为绝对路径。虽然也可以使用绝对路径,但不推荐这么做,因为 这与 wheel 格式的分发包不兼容。文件路径同样也是相对路径,其路径起点为 setup.py 文件所在目录, 即项目的根目录,注意文件不能被重命名。

如果使用 pbr 帮助打包,声明额外文件的方法与上述类似, 需要在 setup.cfg 如下配合

[files]
packages =
 pbr
data_files =
 etc/pbr = etc/*
 etc/init =
  pbr.packaging.conf
  pbr.version.conf

总结

以上所述是小编给大家介绍的Python 分发包中添加额外文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python 简易计算器程序,代码就几行
Aug 29 Python
Python使用Turtle模块绘制五星红旗代码示例
Dec 11 Python
详解Python核心对象类型字符串
Feb 11 Python
python爬虫之xpath的基本使用详解
Apr 18 Python
对python的文件内注释 help注释方法
May 23 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
Pandas删除数据的几种情况(小结)
Jun 21 Python
PyQt5重写QComboBox的鼠标点击事件方法
Jun 25 Python
Django 全局的static和templates的使用详解
Jul 19 Python
Python中的wordcloud库安装问题及解决方法
May 27 Python
Python使用pycharm导入pymysql教程
Sep 16 Python
python自然语言处理之字典树知识总结
Apr 25 Python
解决Djang2.0.1中的reverse导入失败的问题
Aug 16 #Python
基于django传递数据到后端的例子
Aug 16 #Python
Django 拆分model和view的实现方法
Aug 16 #Python
利用Python实现kNN算法的代码
Aug 16 #Python
python实现kNN算法识别手写体数字的示例代码
Aug 16 #Python
python爬虫 爬取超清壁纸代码实例
Aug 16 #Python
Python PO设计模式的具体使用
Aug 16 #Python
You might like
PHP设计聊天室步步通
2006/10/09 PHP
小偷PHP+Html+缓存
2006/12/20 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
php组合排序简单实现方法
2016/10/15 PHP
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
监控 url fragment变化的js代码
2010/04/19 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
js无刷新操作table的行和列
2014/03/27 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
JavaScript闭包的简单应用
2017/09/01 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
react 生命周期实例分析
2020/05/18 Javascript
[03:46]显微镜下的DOTA2第七期——满血与残血
2014/06/20 DOTA
简介Python中用于处理字符串的center()方法
2015/05/18 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
如何基于python操作excel并获取内容
2019/12/24 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
python实现批量转换图片为黑白
2020/06/16 Python
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
如何安装ruby on rails
2014/02/09 面试题
竞选班长演讲稿
2013/12/30 职场文书
实习心得体会
2014/01/02 职场文书
中学生运动会入场词
2014/02/12 职场文书
交通事故和解协议书
2014/09/25 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书