首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bdist_wheel中包含文件,但不包含sdist

在bdist_wheel中包含文件,但不包含sdist
EN

Stack Overflow用户
提问于 2019-04-16 17:58:36
回答 1查看 369关注 0票数 1

许多人抱怨setuptools在制作sdist时没有包括package_data中提到的内容。(见hereherehere。)但是,似乎在某一时刻改变了这一点,因此package_data中提到的项不仅包括在bdist_wheel中,而且还包括在sdist中。我的问题是,我想要旧的行为;我希望在bdist_wheel中包含一个文件(即已编译的可执行文件),而不是sdist。我现在该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-17 21:36:16

免责声明

尽管在技术上是可能的,但请注意,当源dist不包含文件和轮转时,您最终会为相同的元数据安装不同的包,这是一种不良行为。在下面的例子中,

代码语言:javascript
复制
$ pip install spam --only-binary=spam  # force installation from wheel

将安装file.txt

代码语言:javascript
复制
$ pip show -f spam | grep file.txt
  spam/file.txt

代码语言:javascript
复制
$ pip install spam --no-binary=spam  # force installation from source dist

不会的。这是一个引入新错误的明确来源,任何用户都不会对您的这一决定表示感谢。

如果您确实确定这是您所需要的:您可以在MANIFEST.in中排除该文件。示例:

代码语言:javascript
复制
project
├── spam
│   ├── __init__.py
│   └── file.txt
├── MANIFEST.in
└── setup.py

MANIFEST.in

代码语言:javascript
复制
exclude spam/file.txt

setup.py

代码语言:javascript
复制
from setuptools import setup

setup(
    name='spam',
    version='0.1',
    packages=['spam'],
    package_data={'spam': ['file.txt']},
)

建筑车轮:

代码语言:javascript
复制
$ python setup.py bdist_wheel >/dev/null 2>&1 && unzip -l dist/spam-*.whl | grep file.txt
    0  04-17-2019 21:25   spam/file.txt

建筑资料来源区:

代码语言:javascript
复制
$ python setup.py sdist --formats=zip >/dev/null 2>&1 && unzip -l dist/spam-*.zip | grep file.txt
<empty>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55714083

复制
相关文章

相似问题

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