.pyd и .DLL здесь отличаются, в том смысле, что .pyd должен автоматически обнаруживаться модулем поиска и таким образом включаться (при условии, что у вас есть соответствующий оператор "import") без необходимости что-либо делать. Если один из них пропущен, вы делаете то же самое, как если бы файл .py был пропущен (они оба являются просто модулями): используйте опцию «include» для опций py2exe.
Modulefinder не обязательно найдет зависимости от .DLL (py2exe может их обнаружить), поэтому вам может потребоваться явно включить их с опцией «data_files».
Например, если у вас есть два .DLL («foo.dll» и «bar.dll») для включения, и три .pyd («module1.pyd», «module2.pyd» и «module3.pyd») ') включить:
setup(name='App',
# other options,
data_files=[('.', 'foo.dll'), ('.', 'bar.dll')],
options = {"py2exe" : {"includes" : "module1,module2,module3"}}
)