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

时间:2016-07-14 21:38:00

标签: python setuptools packaging

我的Python包有以下结构:

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

47 directories

执行python setup.py build后的Buf,最内层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

2 个答案:

答案 0 :(得分:3)

setup()遗失include_package_data=True。看到我做的PR https://github.com/poliastro/poliastro/pull/139

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

答案 1 :(得分:0)

尝试将__init__.py个文件放在MANIFEST.in

中指定的附带文件夹中