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 创建子进程模块subprocess详解
Apr 08 Python
python选择排序算法实例总结
Jul 01 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
浅谈python 里面的单下划线与双下划线的区别
Dec 01 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
Jun 28 Python
破解安装Pycharm的方法
Oct 19 Python
Django JWT Token RestfulAPI用户认证详解
Jan 23 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
Jan 04 Python
详解python 破解网站反爬虫的两种简单方法
Feb 09 Python
什么是python类属性
Jun 10 Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 10 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
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
各种快递查询--Api接口
2016/04/26 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
extjs render 用法介绍
2013/09/11 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
2018/01/03 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
在Python中使用Mako模版库的简单教程
2015/04/08 Python
python实现八大排序算法(1)
2017/09/14 Python
python实现随机梯度下降(SGD)
2020/03/24 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
经济与贸易专业应届生求职信
2013/11/19 职场文书
缴纳养老保险的证明
2014/01/10 职场文书
中专生职业生涯规划书范文
2014/01/10 职场文书
交通事故协议书范文
2014/04/16 职场文书
植树节新闻稿
2015/07/17 职场文书
python多线程方法详解
2022/01/18 Python