Я пытаюсь создать установщик (используя distutils) для пакета Python, который включает предварительно скомпилированный модуль расширения, который включается с использованием аргумента ключевого слова «package_data». Мой setup.py выглядит примерно так:
from distutils.core import setup
setup(name="Foobar",
...
packages = ['Foobar'],
package_data = {'Foobar': '_foobar.pyd'})
Однако при сборке этого пакета с помощью python setup.py bdist_msi
создается установщик, который будет установлен для любой версии Python (с именем Foobar-1.0.win-amd64.msi
), несмотря на то, что модуль расширения совместим только с той версией Python, для которой он был скомпилирован.
Есть ли способ сообщить distutils о создании установщика, для которого требуется совместимая версия Python, аналогично тому, что создается, когда distutils используется для компиляции модуля расширения (создание установщика с именем Foobar-1.0.win-amd64-py2.7.msi
)
На данный момент лучшее решение, которое я придумал, — это включить дополнительный (фиктивный) пакет расширений, но это кажется неуклюжим и создает некоторые дополнительные проблемы.