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中用has_key()方法查找键是否存在的教程
May 21 Python
Python编程实现双击更新所有已安装python模块的方法
Jun 05 Python
CentOS中升级Python版本的方法详解
Jul 10 Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 Python
Django框架教程之正则表达式URL误区详解
Jan 28 Python
Python骚操作之动态定义函数
Mar 26 Python
使用TensorFlow直接获取处理MNIST数据方式
Feb 10 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
May 18 Python
keras CNN卷积核可视化,热度图教程
Jun 22 Python
Pyhton模块和包相关知识总结
May 12 Python
pd.drop_duplicates删除重复行的方法实现
Jun 16 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
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
jquery常用操作小结
2014/07/21 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
2016/07/27 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
layui 给数据表格加序号的方法
2018/08/20 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
layui动态绑定事件的方法
2019/09/20 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
2016/11/02 Python
利用django如何解析用户上传的excel文件
2017/07/24 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
详解用python写一个抽奖程序
2019/05/10 Python
Python生成词云的实现代码
2020/01/14 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
2020/11/19 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
合唱兴趣小组活动总结
2014/07/10 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
python基础之匿名函数详解
2021/04/21 Python
使用numpy nonzero 找出非0元素
2021/05/14 Python
Python基础 括号()[]{}的详解
2021/11/07 Python