我的Python包有以下结构:
$tree -d | grep -v "__pycache__" . ├── src │ ├── poliastro │ │ ├── iod │ │ ├── tests │ │ └── twobody │ │ └── tests ├── setup.py └── MANIFEST.in 47 directories
@H_301_8@在执行python setup.py构建之后,不会复制最里面的测试目录:
$tree -d | grep -v "__pycache__" . ├── build │ ├── lib │ │ └── poliastro │ │ ├── iod │ │ ├── tests │ │ └── twobody
@H_301_8@相反,python setup.py sdist正常工作.
到目前为止,我已经使用MANIFEST.in规则来包含或排除sdist中的某些文件,模式和目录.有没有办法控制构建目录的内容?为什么有些测试会到达而有些测试却没有?
参考原始问题和源代码:https://github.com/poliastro/poliastro/issues/129
最佳答案
您的setup()缺失include_package_data = True.看到这个PR我做了https://github.com/poliastro/poliastro/pull/139
原文链接:https://www.f2er.com/python/438591.html讨论:如果没有这个,默认情况下不包含非python包文件(例如您列出的不在“包中”的测试py文件),即使它们在技术上是其他包含的Python包目录树的一部分.
/ HTH