Содержание страницы
3. Настройка Python¶Configure Python
3.1. Параметры configure¶Configure Options
Выведите список всех параметров сценария ./configure с помощью:
./configure --help
См. также Misc/SpecialBuilds.txt в дистрибутиве исходного кода Python.
3.1.1. Общие параметры¶General Options
- --enable-loadable-sqlite-extensions¶
Поддержка загружаемых расширений в модуле расширения
_sqlite(по умолчанию отключено) модуляsqlite3.См. метод
sqlite3.Connection.enable_load_extension()модуляsqlite3.Новое в версии 3.6.
- --disable-ipv6¶
Отключить поддержку IPv6 (включена по умолчанию, если поддерживается), см. модуль
socket.
- --enable-big-digits=[15|30]¶
Определить размер в битах цифр Python
int: 15 или 30 бит.По умолчанию размер цифр равен 30.
Определить
PYLONG_BITS_IN_DIGITкак15или30.
- --with-cxx-main¶
- --with-cxx-main=COMPILER¶
Скомпилировать функцию
main()Python и слинковать исполняемый файл Python с C++ компилятором:$CXX, или COMPILER, если указан.
- --with-suffix=SUFFIX¶
Установить суффикс исполняемого файла Python равным SUFFIX.
Суффикс по умолчанию:
.exeв Windows и macOS (python.exeисполняемый файл),.jsв Emscripten node,.htmlв Emscripten browser,.wasmв WASI, и пустая строка на других платформах (pythonисполняемый файл).Изменено в версии 3.11: Суффикс по умолчанию на платформе WASM – один из
.js,.htmlили.wasm.
- --with-tzpath=<list of absolute paths separated by pathsep>¶
Выбрать путь поиска часового пояса по умолчанию для
zoneinfo.TZPATH. См. конфигурацию времени компиляции модуляzoneinfo.По умолчанию:
/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo.См. разделитель путей
os.pathsep.Новое в версии 3.9.
- --without-decimal-contextvar¶
Сборка модуля расширения
_decimalс контекстом, локальным для потока, а не с контекстом, локальным для корутины (по умолчанию). См. модульdecimal.См.
decimal.HAVE_CONTEXTVARи модульcontextvars.Новое в версии 3.9.
- --with-dbmliborder=<list of backend names>¶
Переопределяет порядок проверки бэкендов БД для модуля
dbm.Допустимое значение – строка с именами бэкендов, разделённая двоеточиями (
:):ndbm;gdbm;bdb.
- --without-c-locale-coercion¶
Отключает приведение локали C к локали на основе UTF-8 (включено по умолчанию).
Не определять макрос
PY_COERCE_C_LOCALE.См.
PYTHONCOERCECLOCALEи PEP 538.
- --with-platlibdir=DIRNAME¶
Имя каталога библиотек Python (по умолчанию
lib).Fedora и SuSE используют
lib64на 64-разрядных платформах.См.
sys.platlibdir.Новое в версии 3.9.
- --with-wheel-pkg-dir=PATH¶
Каталог пакетов wheel, используемых модулем
ensurepip(по умолчанию отсутствует).Некоторые политики упаковки дистрибутивов Linux рекомендуют не включать зависимости. Например, Fedora устанавливает пакеты wheel в каталог
/usr/share/python-wheels/и не устанавливает пакетensurepip._bundled.Новое в версии 3.10.
- --with-pkg-config=[check|yes|no]¶
Должен ли configure использовать pkg-config для обнаружения зависимостей сборки.
check(по умолчанию): pkg-config необязателенyes: pkg-config обязателенno: configure не использует pkg-config, даже если он присутствует
Новое в версии 3.11.
- --enable-pystats¶
Включить сбор внутренней статистики.
Статистика будет выгружена в произвольный (вероятно, уникальный) файл в
/tmp/py_stats/, илиC:\temp\py_stats\в Windows.Используйте
Tools/scripts/summarize_stats.pyдля чтения статистики.Новое в версии 3.11.
3.1.2. Параметры WebAssembly¶WebAssembly Options
- --with-emscripten-target=[browser|node]¶
Устанавливает вариант сборки для
wasm32-emscripten.browser(по умолчанию): предзагружать минимальную стандартную библиотеку, по умолчанию MEMFS.node: поддержка NODERAWFS и pthread.
Новое в версии 3.11.
- --enable-wasm-dynamic-linking¶
Включить поддержку динамической компоновки для WASM.
Динамическая компоновка включает
dlopen. Размер исполняемого файла увеличивается из-за ограниченного удаления мёртвого кода и дополнительных возможностей.Новое в версии 3.11.
- --enable-wasm-pthreads¶
Включить поддержку pthreads для WASM.
Новое в версии 3.11.
3.1.3. Параметры установки¶Install Options
- --prefix=PREFIX¶
Устанавливает архитектурно-независимые файлы в PREFIX. В Unix по умолчанию используется
/usr/local.Это значение можно получить во время выполнения с помощью
sys.prefix.Например, можно использовать
--prefix="$HOME/.local/"для установки Python в домашний каталог.
- --exec-prefix=EPREFIX¶
Устанавливает архитектурно-зависимые файлы в EPREFIX, по умолчанию
--prefix.Это значение можно получить во время выполнения с помощью
sys.exec_prefix.
3.1.4. Параметры производительности¶Performance options
Для достижения наилучшей производительности рекомендуется настраивать Python с использованием --enable-optimizations --with-lto (PGO + LTO).
- --enable-optimizations¶
Включает профильную оптимизацию (PGO) с помощью
PROFILE_TASK(по умолчанию отключено).Компилятору Clang требуется программа
llvm-profdataдля PGO. На macOS она также требуется GCC: GCC – это просто псевдоним Clang на macOS.Также отключает семантическое переопределение символов в libpython, если используются
--enable-sharedи GCC: добавьте-fno-semantic-interpositionв флаги компилятора и компоновщика.Новое в версии 3.6.
Изменено в версии 3.10: Используйте
-fno-semantic-interpositionв GCC.
- PROFILE_TASK¶
Переменная окружения, используемая в Makefile: аргументы командной строки Python для задачи генерации PGO.
По умолчанию:
-m test --pgo --timeout=$(TESTTIMEOUT).Новое в версии 3.8.
- --with-lto=[full|thin|no|yes]¶
Включает оптимизацию во время компоновки (LTO) в любой сборке (по умолчанию отключено).
Компилятору Clang требуется
llvm-arдля LTO (arв macOS), а также компоновщик, поддерживающий LTO (ld.goldилиlld).Новое в версии 3.6.
Новое в версии 3.11: Для использования функции ThinLTO используйте
--with-lto=thinв Clang.
- --with-computed-gotos¶
Включает вычисляемые переходы в цикле вычислений (включено по умолчанию на поддерживаемых компиляторах).
- --without-pymalloc¶
Отключает специализированный распределитель памяти Python pymalloc (включён по умолчанию).
См. также переменную окружения
PYTHONMALLOC.
- --without-doc-strings¶
Отключает статические строки документации для уменьшения потребления памяти (включено по умолчанию). Строки документации, определённые в Python, не затрагиваются.
Не определять макрос
WITH_DOC_STRINGS.См. макрос
PyDoc_STRVAR().
- --enable-profiling¶
Включает профилирование кода на уровне C с помощью
gprof(отключено по умолчанию).
3.1.5. Отладочная сборка Python¶Python Debug Build
Отладочная сборка – это Python, собранный с опцией конфигурации --with-pydebug.
Эффекты отладочной сборки:
Показывать все предупреждения по умолчанию: список фильтров предупреждений по умолчанию пуст в модуле
warnings.Добавляет
dвsys.abiflags.Добавляет функцию
sys.gettotalrefcount().Добавляет опцию командной строки
-X showrefcount.Добавляет переменную окружения
PYTHONTHREADDEBUG.Добавляет поддержку переменной
__lltrace__: включение низкоуровневой трассировки в цикле выполнения байт-кода, если переменная определена.Устанавливает отладочные привязки на распределители памяти для обнаружения переполнения буфера и других ошибок памяти.
Определяет макросы
Py_DEBUGиPy_REF_DEBUG.Добавляет проверки времени выполнения: код, окружённый
#ifdef Py_DEBUGи#endif. Включает утвержденияassert(...)и_PyObject_ASSERT(...): не устанавливайте макросNDEBUG(см. также опцию конфигурации--with-assertions). Основные проверки времени выполнения:Добавляет проверки корректности аргументов функций.
Объекты Unicode и int создаются с заполнением памяти шаблоном для обнаружения использования неинициализированных объектов.
Гарантирует, что функции, которые могут очистить или заменить текущее исключение, не вызываются при возникшем исключении.
Проверяется, что функции деаллокации не изменяют текущее исключение.
Сборщик мусора (функция
gc.collect()) выполняет базовые проверки корректности объектов.Макрос
Py_SAFE_DOWNCAST()проверяет целочисленное переполнение (underflow и overflow) при понижающем приведении от широких типов к узким.
См. также режим разработки Python и опцию конфигурации --with-trace-refs.
Изменено в версии 3.8: Сборки для выпуска и отладочные сборки теперь совместимы по ABI: определение макроса Py_DEBUG больше не подразумевает макрос Py_TRACE_REFS (см. опцию --with-trace-refs), который вводил единственную несовместимость ABI.
3.1.6. Отладочные опции¶Debug options
- --with-pydebug¶
Собрать Python в отладочном режиме: определяет макрос
Py_DEBUG(отключён по умолчанию).
- --with-trace-refs¶
Включает отслеживание ссылок для целей отладки (отключено по умолчанию).
Эффекты:
Определяет макрос
Py_TRACE_REFS.Добавляет функцию
sys.getobjects().Добавляет переменную окружения
PYTHONDUMPREFS.
Эта сборка несовместима по ABI со сборкой для выпуска (сборкой по умолчанию) или отладочной сборкой (макросы
Py_DEBUGиPy_REF_DEBUG).Новое в версии 3.8.
- --with-assertions¶
Сборка с включёнными C-утверждениями (по умолчанию нет):
assert(...);и_PyObject_ASSERT(...);.Если установлен, макрос
NDEBUGне определяется в переменной компилятораOPT.См. также опцию
--with-pydebug(отладочная сборка), которая также включает утверждения.Новое в версии 3.6.
- --with-valgrind¶
Включить поддержку Valgrind (по умолчанию нет).
- --with-dtrace¶
Включить поддержку DTrace (по умолчанию нет).
См. Инструментирование CPython с помощью DTrace и SystemTap.
Новое в версии 3.6.
- --with-address-sanitizer¶
Включает детектор ошибок памяти AddressSanitizer,
asan(по умолчанию нет).Новое в версии 3.6.
- --with-memory-sanitizer¶
Включить детектор ошибок выделения памяти MemorySanitizer,
msan(по умолчанию нет).Новое в версии 3.6.
- --with-undefined-behavior-sanitizer¶
Включить детектор неопределённого поведения UndefinedBehaviorSanitizer,
ubsan(по умолчанию нет).Новое в версии 3.6.
3.1.7. Параметры компоновщика¶Linker options
Включает сборку разделяемой библиотеки Python:
libpython(по умолчанию выключено).
- --without-static-libpython¶
Не собирать
libpythonMAJOR.MINOR.aи не устанавливатьpython.o(собирается и устанавливается по умолчанию).Новое в версии 3.10.
3.1.8. Параметры библиотек¶Libraries options
- --with-libs='lib1 ...'¶
Линковаться с дополнительными библиотеками (по умолчанию нет).
- --with-system-expat¶
Собирать модуль
pyexpat, используя установленную библиотекуexpat(по умолчанию нет).
- --with-system-ffi¶
Собрать модуль расширения
_ctypes, используя установленнуюffiбиблиотеку, см. модульctypes(по умолчанию зависит от системы).
- --with-system-libmpdec¶
Собрать модуль расширения
_decimal, используя установленную библиотекуmpdec; см. модульdecimal(по умолчанию нет).Новое в версии 3.3.
- --with-readline=editline¶
Использовать библиотеку
editlineв качестве бэкенда модуляreadline.Определяет макрос
WITH_EDITLINE.Новое в версии 3.10.
- --without-readline¶
Не собирать модуль
readline(собирается по умолчанию).Не определять макрос
HAVE_LIBREADLINE.Новое в версии 3.10.
- --with-libm=STRING¶
Переопределить математическую библиотеку
libmна STRING (по умолчанию зависит от системы).
- --with-libc=STRING¶
Переопределить библиотеку C
libcна STRING (по умолчанию зависит от системы).
- --with-openssl=DIR¶
Корневой каталог OpenSSL.
Добавлено в версии 3.7.
- --with-openssl-rpath=[no|auto|DIR]¶
Задать каталог библиотек времени выполнения (rpath) для библиотек OpenSSL:
no(по умолчанию): не устанавливать rpath;auto: автоматически определять rpath из--with-opensslиpkg-config;DIR: указать явный rpath.
Новое в версии 3.10.
3.1.9. Параметры безопасности¶Security Options
- --with-hash-algorithm=[fnv|siphash13|siphash24]¶
Выберите алгоритм хеширования для использования в
Python/pyhash.c:siphash13(по умолчанию);siphash24;fnv.
Новое в версии 3.4.
Новое в версии 3.11:
siphash13добавлен и теперь используется по умолчанию.
- --with-builtin-hashlib-hashes=md5,sha1,sha256,sha512,sha3,blake2¶
Встроенные хеш-модули:
md5;sha1;sha256;sha512;sha3(с shake);blake2.
Новое в версии 3.9.
- --with-ssl-default-suites=[python|openssl|STRING]¶
Переопределить строку наборов шифров OpenSSL по умолчанию:
python(по умолчанию): использовать предпочтительный выбор Python;openssl: оставить настройки OpenSSL по умолчанию без изменений;STRING: использовать произвольную строку
См. модуль
ssl.Добавлено в версии 3.7.
Изменено в версии 3.10: Настройки
pythonи STRING также устанавливают TLS 1.2 в качестве минимальной версии протокола.
3.1.10. Параметры macOS¶macOS Options
См. Mac/README.rst.
- --enable-universalsdk¶
- --enable-universalsdk=SDKDIR¶
Создание универсальной сборки двоичного файла. SDKDIR указывает, какой macOS SDK следует использовать для сборки (по умолчанию нет).
- --enable-framework¶
- --enable-framework=INSTALLDIR¶
Создаёт Python.framework вместо традиционной установки в Unix. Необязательный INSTALLDIR определяет путь установки (по умолчанию – нет).
- --with-universal-archs=ARCH¶
Определяет тип универсального бинарного файла, который будет создан. Этот параметр работает, только если указан
--enable-universalsdk.Варианты:
universal2;32-bit;64-bit;3-way;intel;intel-32;intel-64;all.
- --with-framework-name=FRAMEWORK¶
Задаёт имя для python framework в macOS. Работает только при указанном
--enable-framework(по умолчанию:Python).
3.1.11. Параметры кросс-компиляции¶Cross Compiling Options
Кросс-компиляция (также известная как кросс-сборка) используется для сборки Python под другую архитектуру CPU или платформу. Для кросс-компиляции требуется интерпретатор Python для платформы сборки. Версия Python для сборки должна совпадать с версией Python для целевой платформы, скомпилированной кросс-компилятором.
- --build=BUILD¶
настройка для сборки на платформе BUILD, обычно определяется с помощью config.guess.
- --host=HOST¶
кросс-компиляция для сборки программ, выполняемых на HOST (целевая платформа)
- --with-build-python=path/to/python¶
путь к
pythonдвоичному файлу для кросс-компиляцииНовое в версии 3.11.
- CONFIG_SITE=file¶
Переменная окружения, указывающая на файл с переопределениями configure.
Пример файла config.site:
# config.site-aarch64 ac_cv_buggy_getaddrinfo=no ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no
Пример кросс-компиляции:
CONFIG_SITE=config.site-aarch64 ../configure \
--build=x86_64-pc-linux-gnu \
--host=aarch64-unknown-linux-gnu \
--with-build-python=../x86_64/python
3.2. Система сборки Python¶Python Build System
3.2.1. Основные файлы системы сборки¶Main files of the build system
configure.ac=>configure;Makefile.pre.in=>Makefile(создаётся с помощьюconfigure);pyconfig.h(создаётся с помощьюconfigure);Modules/Setup: расширения на C, собираемые Makefile с помощьюModule/makesetupshell-скрипта;setup.py: расширения C, собранные с использованием модуляdistutils.
3.2.2. Основные этапы сборки¶Main build steps
C-файлы (
.c) компилируются в объектные файлы (.o).Статическая библиотека
libpython(.a) создаётся из объектных файлов.python.oи статическая библиотекаlibpythonкомпонуются в итоговую программуpython.Расширения C собираются Makefile (см.
Modules/Setup) иpython setup.py build.
3.2.3. Основные цели Makefile¶Main Makefile targets
make: Собрать Python со стандартной библиотекой.make platform:: собрать программуpython, но не собирать модули расширений стандартной библиотеки.make profile-opt: собрать Python с использованием профильной оптимизации (PGO). Чтобы сделать это целью по умолчанию командыmake(make allили простоmake), можно использовать опцию configure--enable-optimizations.make buildbottest: собрать Python и запустить тестовый набор Python, так же как сборочные боты тестируют Python. Установите переменнуюTESTTIMEOUT(в секундах), чтобы изменить тайм-аут теста (по умолчанию 1200: 20 минут).make install: собрать и установить Python.make regen-all: перегенерировать (почти) все сгенерированные файлы;make regen-stdlib-module-namesиautoconfдолжны быть запущены отдельно для оставшихся сгенерированных файлов.make clean: удалить собранные файлы.make distclean: то же, чтоmake clean, но также удаляет файлы, созданные скриптом configure.
3.2.4. Расширения C¶C extensions
Некоторые расширения C собираются как встроенные модули, например модуль sys.
Они собираются с определённым макросом Py_BUILD_CORE_BUILTIN.
Встроенные модули не имеют атрибута __file__:
>>> import sys
>>> sys
<module 'sys' (built-in)>
>>> sys.__file__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'sys' has no attribute '__file__'
Другие расширения C собираются как динамические библиотеки, например модуль _asyncio.
Они собираются с определённым макросом Py_BUILD_CORE_MODULE.
Пример на Linux x86-64:
>>> import _asyncio
>>> _asyncio
<module '_asyncio' from '/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'>
>>> _asyncio.__file__
'/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'
Modules/Setup используется для генерации целей Makefile для сборки расширений C.
В начале файлов расширения C собираются как встроенные модули.
Расширения, определённые после маркера *shared*, собираются как динамические библиотеки.
Скрипт setup.py собирает расширения C только как разделяемые библиотеки с помощью
модуля distutils.
Макросы PyAPI_FUNC(), PyAPI_DATA() и
PyMODINIT_FUNC из Include/pyport.h определяются
по-разному в зависимости от того, определён ли макрос Py_BUILD_CORE_MODULE:
Используйте
Py_EXPORTED_SYMBOL, еслиPy_BUILD_CORE_MODULEопределён.В противном случае используйте
Py_IMPORTED_SYMBOL.
Если макрос Py_BUILD_CORE_BUILTIN по ошибке используется для расширения C,
собранного как разделяемая библиотека, его функция PyInit_xxx() не экспортируется,
что вызывает ImportError при импорте.
3.3. Флаги компилятора и компоновщика¶Compiler and linker flags
Параметры, задаваемые сценарием ./configure и переменными окружения, и используемые
Makefile.
3.3.1. Флаги препроцессора¶Preprocessor flags
- CONFIGURE_CPPFLAGS¶
Значение переменной
CPPFLAGS, передаваемое сценарию./configure.Новое в версии 3.6.
- CPPFLAGS¶
(Objective) C/C++ флаги препроцессора, например
-Iinclude_dir, если заголовочные файлы находятся в нестандартном каталоге include_dir.И
CPPFLAGS, иLDFLAGSдолжны содержать значение оболочки, чтобы setup.py мог собирать модули расширения, используя каталоги, указанные в переменных окружения.
- BASECPPFLAGS¶
Новое в версии 3.4.
- PY_CPPFLAGS¶
Дополнительные флаги препроцессора, добавляемые при сборке объектных файлов интерпретатора.
По умолчанию:
$(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS).Новое в версии 3.2.
3.3.2. Флаги компилятора¶Compiler flags
- CC¶
Команда компилятора C.
Пример:
gcc -pthread.
- MAINCC¶
Команда компилятора C, используемая для сборки функции
main()в таких программах, какpython.Переменная, устанавливаемая опцией
--with-cxx-mainсценария configure.По умолчанию:
$(CC).
- CXX¶
Команда компилятора C++.
Используется, если указана опция
--with-cxx-main.Пример:
g++ -pthread.
- CFLAGS¶
Флаги компилятора C.
- CFLAGS_NODIST¶
CFLAGS_NODISTиспользуется для сборки интерпретатора и расширений C из стандартной библиотеки. Используйте его, когда флаг компилятора не должен входить в составCFLAGSdistutils после установки Python (bpo-21121).В частности,
CFLAGSне должен содержать:флаг компилятора
-I(для задания пути поиска включаемых файлов). Флаги-Iобрабатываются слева направо, и любые флаги изCFLAGSбудут иметь приоритет над-Iфлагами, предоставленными пользователем и пакетами.флаги усиления защиты, такие как
-Werror, поскольку дистрибутивы не могут контролировать, соответствуют ли установленные пользователями пакеты таким повышенным стандартам.
Новое в версии 3.5.
- EXTRA_CFLAGS¶
Дополнительные флаги компилятора C.
- CONFIGURE_CFLAGS¶
Значение переменной
CFLAGS, передаваемое сценарию./configure.Новое в версии 3.2.
- CONFIGURE_CFLAGS_NODIST¶
Значение переменной
CFLAGS_NODIST, передаваемое сценарию./configure.Новое в версии 3.5.
- BASECFLAGS¶
Базовые флаги компилятора.
- OPT¶
Флаги оптимизации.
- CFLAGS_ALIASING¶
Флаги строгого или нестрогого алиасинга, используемые для компиляции
Python/dtoa.c.Добавлено в версии 3.7.
- CCSHARED¶
Флаги компилятора, используемые для сборки разделяемой библиотеки.
Например,
-fPICиспользуется в Linux и BSD.
- CFLAGSFORSHARED¶
Дополнительные флаги C, добавляемые для сборки объектных файлов интерпретатора.
По умолчанию:
$(CCSHARED)при использовании--enable-shared, иначе пустая строка.
- PY_CFLAGS¶
По умолчанию:
$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS).
- PY_CFLAGS_NODIST¶
По умолчанию:
$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/internal.Новое в версии 3.5.
- PY_STDMODULE_CFLAGS¶
Флаги C, используемые для сборки объектных файлов интерпретатора.
По умолчанию:
$(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED).Добавлено в версии 3.7.
- PY_CORE_CFLAGS¶
По умолчанию:
$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE.Новое в версии 3.2.
- PY_BUILTIN_MODULE_CFLAGS¶
Флаги компилятора для сборки модуля расширения стандартной библиотеки как встроенного модуля, подобно модулю
posix.По умолчанию:
$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN.Новое в версии 3.8.
- PURIFY¶
Команда Purify. Purify – программа для отладки памяти.
По умолчанию: пустая строка (не используется).
3.3.3. Флаги компоновщика¶Linker flags
- LINKCC¶
Команда компоновщика, используемая для сборки программ, таких как
pythonи_testembed.По умолчанию:
$(PURIFY) $(MAINCC).
- CONFIGURE_LDFLAGS¶
Значение переменной
LDFLAGS, передаваемое сценарию./configure.Избегайте присваивания
CFLAGS,LDFLAGSи т.д., чтобы пользователи могли использовать их в командной строке для добавления к этим значениям, не перезаписывая предустановленные.Новое в версии 3.2.
- LDFLAGS_NODIST¶
LDFLAGS_NODISTиспользуется так же, какCFLAGS_NODIST. Его применяют, когда флаг компоновщика не должен быть частью distutilsLDFLAGSпосле установки Python (bpo-35257).В частности,
LDFLAGSне должен содержать:флаг компилятора
-L(для установки пути поиска библиотек). Флаги-Lобрабатываются слева направо, и любые флаги вLDFLAGSбудут иметь приоритет над флагами-L, предоставленными пользователем или пакетом.
- CONFIGURE_LDFLAGS_NODIST¶
Значение переменной
LDFLAGS_NODIST, передаваемое сценарию./configure.Новое в версии 3.8.
- LDFLAGS¶
Флаги компоновщика, например,
-Llib_dir, если библиотеки находятся в нестандартном каталоге lib_dir.И
CPPFLAGS, иLDFLAGSдолжны содержать значение из оболочки, чтобы setup.py мог собирать модули расширения, используя каталоги, указанные в переменных окружения.
- LIBS¶
Флаги компоновщика для передачи библиотек компоновщику при компоновке исполняемого файла Python.
Пример:
-lrt.
- LDSHARED¶
Команда для сборки разделяемой библиотеки.
По умолчанию:
@LDSHARED@ $(PY_LDFLAGS).
- BLDSHARED¶
Команда для сборки разделяемой библиотеки
libpython.По умолчанию:
@BLDSHARED@ $(PY_CORE_LDFLAGS).
- PY_LDFLAGS¶
По умолчанию:
$(CONFIGURE_LDFLAGS) $(LDFLAGS).
- PY_LDFLAGS_NODIST¶
По умолчанию:
$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST).Новое в версии 3.8.
- PY_CORE_LDFLAGS¶
Флаги компоновщика, используемые для сборки объектных файлов интерпретатора.
Новое в версии 3.8.