python setup.py 忽略一些文件

python setup.py build ignoring some files

我的 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

尝试将 __init__.py 个文件放入 MANIFEST.in 中指定的包含文件夹中。

你的 setup() 不见了 include_package_data=True。查看我制作的这个 PR https://github.com/poliastro/poliastro/pull/139

讨论:如果没有这个,非python包文件(例如你列出的测试py文件不是"in a package")默认不包括在内,即使它们在技术上是否则包含 Python 包目录树。
/HTH