Каков рекомендуемый способ работы с основанной на distutils setup.py расширения C?

#python #setuptools #distutils #setup.py

#питон #setuptools #distutils #setup.py #python

Вопрос:

https://wiki.python.org/moin/WindowsCompilers теперь полностью заменил инструкции для пакетов на distutils основе (начиная с from distutils.core import setup ) на инструкции для пакетов на setuptools основе (начиная с from setuptools import setup ).

Однако, если у меня есть distutils на основе setup.py , когда я его запускаю, setuptools не используется — таким образом, инструкции на странице не работают.

Можно запустить distutils скрипт на основе через setuptools , как pip это делается, но для этого требуется следующий код:

 python -u -c "import setuptools, tokenize;__file__=<setup.py full path>;
    exec(compile(getattr(tokenize, 'open', open)(__file__).read()
    .replace('\r\n', '\n'), __file__, 'exec'))" <setup.py arguments>
  

Они же не могут ожидать, что я буду вводить это в командной строке каждый раз, не так ли?

Комментарии:

1. Я вижу, вы задавали этот вопрос также в comp.lang.python . Я недавно исследовал это и пришел к выводу, что теперь они рекомендуют распространять диски, а не sdist. Это кажется разумным для Windows.

Ответ №1:

С момента запроса,https://wiki.python.org/moin/WindowsCompilers был обновлен, чтобы включить инструкции для distutils . Суть в том:

  • distutils определяет только базовую настройку компилятора (обычно компилятор входит в соответствующую версию Visual Studio). Разделы руководства, соответствующие этим настройкам, явно упоминаются distutils .

  • Для других настроек его можно запустить из «командной строки Windows SDK» и попросить полагаться на заданные им переменные окружения, также установив DISTUTILS_USE_SDK переменную окружения.

    • Под капотом он также проверяет MsSdk переменную среды, которая задается скриптами командной строки MS SDK.