python setup.py 构建忽略一些文件

标签 python setuptools packaging

我的 Python 包具有以下结构:

$ tree -d | grep -v "__pycache__"
.
├── src
│   ├── poliastro
│   │   ├── iod
│   │   ├── tests
│   │   └── twobody
│   │       └── tests
├── setup.py
└── MANIFEST.in

47 directories

Buf 在执行 python setup.py build 之后,最里面的 test 目录没有被复制:

$ tree -d | grep -v "__pycache__"
.
├── build
│   ├── lib
│   │   └── poliastro
│   │       ├── iod
│   │       ├── tests
│   │       └── twobody

相反,python setup.py sdist 可以正常工作。

到目前为止,我已经使用 MANIFEST.in 规则从 sdist 中包含或排除某些文件、模式和目录。有没有办法控制 build 目录的内容?为什么有些测试成功了,有些却没有?

引用原始问题和源代码:https://github.com/poliastro/poliastro/issues/129

最佳答案

您的 setup() 缺少 include_package_data=True。请参阅我制作的此 PR https://github.com/poliastro/poliastro/pull/139

讨论:如果没有这个,非 python 包文件(例如您列出的不在“包中”的测试 py 文件)默认情况下不包含,即使它们在技术上是包含在其他 Python 包目录中的一部分树。
/HTH

关于python setup.py 构建忽略一些文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38384677/

相关文章:

python - Django ORM orderby exact/prominent match 排在最前面

python - 使用 ctypes 在 Python 中使用 Rust 返回的数组

python - 为什么 SymPy 不简化表达式?

virtualenv - 在 mountain lion 上安装 virtualenvwrapper 时出现问题

python - setuptools:使用源文件夹中的 setup.py 从 'project' 导入

linux - 从一个来源为数据文件创建多个 Debian 软件包

python - 发布一个 python 包——你应该包括文档和测试吗?

python - Apache 中未加载模板标签

Python setuptools 正在从 Windows 上的路径参数中删除斜杠

visual-studio - 自定义 Visual Studio MSIX 打包项目输出