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 相关文章推荐
tensorflow实现KNN识别MNIST
Mar 12 Python
详解Python3.6的py文件打包生成exe
Jul 13 Python
学生信息管理系统python版
Oct 17 Python
python调用java的jar包方法
Dec 15 Python
Pycharm+Scrapy安装并且初始化项目的方法
Jan 15 Python
python导包的几种方法(自定义包的生成以及导入详解)
Jul 15 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 Python
详解PyQt5信号与槽的几种高级玩法
Mar 24 Python
pandas参数设置的实用小技巧
Aug 23 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
Nov 19 Python
Python爬虫简单运用爬取代理IP的实现
Dec 01 Python
详解Selenium 元素定位和WebDriver常用方法
Dec 04 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
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
firefox firebug中文入门教程 脚本之家新年特别版
2010/01/02 Javascript
学习面向对象之面向对象的术语
2010/11/30 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
JavaScript弹出窗口方法汇总
2014/08/12 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
2016/12/28 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
[56:41]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs OG
2018/04/01 DOTA
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
Python的时间模块datetime详解
2017/04/17 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
python障碍式期权定价公式
2019/07/19 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
2019/09/16 Python
python数值基础知识浅析
2019/11/19 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
nohup的用法
2014/08/10 面试题
职业教育毕业生求职信
2013/11/09 职场文书
绩效工资分配方案
2014/01/18 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
2014年班组建设工作总结
2014/12/01 职场文书
女儿满月酒致辞
2015/07/29 职场文书
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL