Как передать флаги расширению distutils?

Я пытаюсь установить модуль Python, содержащий модули C. Код C зависит от библиотеки, доступной в глобальных местах установки системы (/usr/include, /usr/lib), но в моем случае у меня есть только локальная установка этой библиотеки. Поэтому я хотел бы передавать параметры (например, --incdir, --libdir) при вызове «setup.py build», чтобы эти значения попали в сценарий установки.

Есть ли способ добиться этого?


person BjoernD    schedule 13.11.2011    source источник
comment
Этот вопрос дублирует вопрос Как я могу переопределить флаги компилятора (GCC), которые setup.py использует по умолчанию?   -  person EvgenKo423    schedule 13.07.2021
comment
Связано: python pip указывает каталог библиотеки и каталог включения.   -  person EvgenKo423    schedule 13.07.2021


Ответы (1)


Я узнал, что

CFLAGS="-I<local include dir>" LDFLAGS="-L<local lib dir>"

в командную строку при вызове setup.py сделал свое дело.

person BjoernD    schedule 13.11.2011
comment
python setup.py build_ext --include-dirs=/path/to/include/ --library-dirs=/path/to/libs/ --libraries=mylib --rpath=$ORIGIN работает, введите python setup.py build_ext --help или добавьте их для setup.py Extension см. Справочник по API Distutil . Поместите их в setup.cfg, см. также Установите модули Python. Не знаю, о чем идет речь в разделе «Настройка флагов компилятора/компоновщика». - person Mark Mikofski; 22.11.2014
comment
Примечательно, что это не работает в Windows/MSVC, поскольку там полностью игнорируются CFLAGS, как и все остальные параметры в distutils.sysconfig.customize_compiler(). - person schlenk; 29.06.2016