不幸的是,公认的设置答案packages=[]
是错误的,并且可能破坏很多东西,例如可以在此问题中看到。不要使用它。而不是从dist中排除所有软件包,您应该仅排除将被cythonized并编译为共享对象的python文件。
下面是一个工作示例;它使用我的食谱中的问题从python bdist_egg或bdist_wheel中排除单个源文件。示例项目包含spam
具有两个模块的软件包spam.eggs
和spam.bacon
,以及spam.fizz
具有一个模块的子软件包spam.fizz.buzz
:
root
├── setup.py
└── spam
├── __init__.py
├── bacon.py
├── eggs.py
└── fizz
├── __init__.py
└── buzz.py
模块查找是在build_py
命令中完成的,因此您需要使用自定义行为对其进行子类化。