我的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
答案 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
。