Python может быть построен в специальной конфигурации “python debugging” которая добавляет дополнительные проверки и инструменты, которые могут быть очень полезны для разработчиков модулей расширения. Структуры данных, используемые конфигурацией отладки, содержат дополнительные элементы, поэтомуисполняемый файл Python, построенный с включенной отладкой Python, не может использоваться с модулем расширения или библиотекой, скомпилированной без него, и наоборот.
Начиная с предустановленной и #8220; Python отладки и #8221; версии исполняемого файла и библиотек Python не поставляются с большинством дистрибутивов Python,и мы не хотели заставлять наших пользователей создавать их, Boost. Build не позволяет автоматически отлаживать Python в его варианте<debug
>сборки (который является по умолчанию). Вместо этого существует специальное свойство сборки<python-debugging
>, которое при использовании в качестве свойства сборки определяет правильные символы препроцессора и выбирает правильные библиотеки для связи.
На Unix-вариантных платформах отладочные версии структур данных Python будут использоваться только при определении символа<Py_DEBUG
>. На многих компиляторах Windows, когда модули расширения построены с помощью символа препроцессора<_DEBUG
>, Python по умолчанию принудительно связывается со специальной версией отладки Python DLL. Поскольку этот символ очень часто используется, даже когда Python отсутствует, Boost. Python временно не определяет<_DEBUG
>, когда<Python.h
>включено из<boost/python/detail/wrap_python.hpp
>- если<BOOST_DEBUG_PYTHON
>не определено. Результатом является то, что если вы хотите & #8220; отладка Python & #8221; и вы не используете Boost. Постройте, вы должны убедиться, что<BOOST_DEBUG_PYTHON
>определено, или отладка питонов будет подавлена.