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连接oracle数据库实例
Oct 17 Python
深入理解Python中命名空间的查找规则LEGB
Aug 06 Python
python简单实现刷新智联简历
Mar 30 Python
开源软件包和环境管理系统Anaconda的安装使用
Sep 04 Python
教你使用python画一朵花送女朋友
Mar 29 Python
Python爬虫包BeautifulSoup学习实例(五)
Jun 17 Python
让代码变得更易维护的7个Python库
Oct 09 Python
在python下使用tensorflow判断是否存在文件夹的实例
Jun 10 Python
Django REST framework 分页的实现代码
Jun 19 Python
Pytorch 保存模型生成图片方式
Jan 10 Python
Django实现将一个字典传到前端显示出来
Apr 03 Python
PyTorch预训练Bert模型的示例
Nov 17 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中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
解析PHP的session过期设置
2013/06/29 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
php操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
Smarty中的注释和截断功能介绍
2015/04/09 PHP
jQuery 使用手册(七)
2009/09/23 Javascript
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
用svg制作富有动态的tooltip
2015/07/17 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
python根据出生日期返回年龄的方法
2015/03/26 Python
Python中的高级函数map/reduce使用实例
2015/04/13 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
wxPython实现画图板
2020/08/27 Python
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
青年创业培训欢迎词
2014/01/08 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
工作试用期自我评价
2015/03/10 职场文书
招商银行收入证明
2015/06/17 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
护士医德医风心得体会
2016/01/25 职场文书
python tkinter实现定时关机
2021/04/21 Python
vue首次渲染全过程
2021/04/21 Vue.js
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python