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对SQLite数据库操作
Apr 06 Python
Tensorflow简单验证码识别应用
May 25 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
使用Django和Python创建Json response的方法
Mar 26 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
Jun 14 Python
详解分布式任务队列Celery使用说明
Nov 29 Python
Python http接口自动化测试框架实现方法示例
Dec 06 Python
深入了解Python iter() 方法的用法
Jul 11 Python
Django将默认的SQLite更换为MySQL的实现
Nov 18 Python
利用python3 的pygame模块实现塔防游戏
Dec 30 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
python异步的ASGI与Fast Api实现
Jul 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
php中看实例学正则表达式
2006/12/25 PHP
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
详细解读PHP中接口的应用
2015/08/12 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
索趣科技的答案
2007/02/07 Javascript
Prototype源码浅析 String部分(一)之有关indexOf优化
2012/01/15 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
Vue框架里使用Swiper的方法示例
2018/09/20 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
详解python实现线程安全的单例模式
2018/03/05 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
Python3解释器知识点总结
2019/02/19 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
一套Delphi的笔试题一
2016/02/14 面试题
我爱我家教学反思
2014/05/01 职场文书
运动会方阵口号
2014/06/07 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle