Создание Python-зависимой от версии программы установки с предварительно скомпилированным пакетом расширения - PullRequest
2 голосов
/ 04 января 2012

Я пытаюсь создать установщик (используя 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)

На данный момент лучшее решение, которое я придумала, - это включить дополнительный (фиктивный) пакет расширений, но это выглядит немного глупо и создает некоторые дополнительные проблемы.

1 Ответ

1 голос
/ 24 июня 2013

Это можно сделать с помощью аргумента --target-version, например,

python setup.py bdist_msi --target-version=2.7

В документации Distutils упоминается эта опция в отношении команды bdist_rpm, но она также работает дляbdist_msi.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...