首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setuptools sdist忽略data_files

setuptools sdist忽略data_files
EN

Stack Overflow用户
提问于 2016-06-30 07:56:47
回答 1查看 1.2K关注 0票数 1

根据docs https://packaging.python.org/en/latest/distributing/#data-files

setuptools将尊重data_files向setup.py透露的信息。但我不能让它起作用。这是我的setup.py:

代码语言:javascript
复制
setup(
    name='booking_order',
    version=version,
    packages=find_packages(),
    package_data={
        'booking_order': ['fake_backends/static/*',
                          'scripts/*',
                          '*.sample'],
    },
    data_files=[
        ('/etc/booking', ['etc/booking.conf'])
    ],

这是项目的文件树:

代码语言:javascript
复制
.
├── booking_order
│   ├── __init__.py
│   ├── tests
│   │   ├── __init__.py
├── etc
│   ├── booking.conf
├── README.md
├── setup.py

其行为是,如果我运行python setup.py installetc/booking.conf文件将被安装到/etc/booking中。但是,如果我首先python setup.py sdist upload,然后是pip install booking_order,就会出现一个错误" error :无法复制'etc/booking.conf':不存在或不存在常规文件“。我检查了python setup.py sdist,根本不包括文件等。

编辑:

似乎这就是答案:https://github.com/pypa/setuptools/issues/521

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-05 08:32:30

我自己回答。

佩帕非包数据文件说:“Setuptools不支持在用户机器上的任意位置安装数据文件;这是一个特性,而不是一个bug。”

如果需要将文件安装到像/etc、/usr/share这样的位置,那么他/她可以使用distutils中的data_files标志,这一特性并不是从setuptools中完全清除的。“未完全清理”意味着您需要手动将这些文件添加到MANIFEST.in中,这与distutils中的不同。

当然,如果可以使用rpm或deb包系统管理这些配置文件,情况会更好。对我来说,这只是一个临时的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38117149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档