#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.
- Под капотом он также проверяет