8.1 Разработка приложений с помощью плагина Connector/Python C Extension
Установки Connector/Python версии 2.1.1 и выше поддерживают аргумент use_pure для функции mysql.connector.connect(), указывающий, использовать ли чистый интерфейс Python для MySQL или C Extension, использующий библиотеку MySQL C client:
По умолчанию,
use_pure(использование чистого Python-реализация) установлено какFalseс MySQL 8 и по умолчанию равноTrueв более ранних версиях. Если C extension недоступен на системе, тоuse_pureустанавливается какTrue.-
В Linux C и Python-реализации доступны в качестве отдельных пакетов. Вы можете установить одну или обе реализации на одной системе. В Windows и macOS пакеты включают обе реализации.
Для установок Connector/Python, включающих обе реализации, можно выборочно переключиться, передав
use_pure=False(для использования C реализации) илиuse_pure=True(для использования Python реализации) в качестве аргумента функцииmysql.connector.connect(). Для установок Connector/Python, которые не включают C Extension, передача
use_pure=Falseфункцииmysql.connector.connect()вызывает исключение.Для более старых установок Connector/Python, которые не знают о C Extension (до версии 2.1.1), передача
use_pureфункцииmysql.connector.connect()вызывает исключение независимо от его значения.
В macOS, если ваша установка Connector/Python включает C Extension, но скрипты Python не могут его использовать, попробуйте установить переменную окружения DYLD_LIBRARY_PATH в каталог, содержащий библиотеку C client. Например:
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib (for sh)
setenv DYLD_LIBRARY_PATH /usr/local/mysql/lib (for tcsh)
Если вы скомпилировали C Extension из исходного кода, этот каталог должен быть тем, который содержит библиотеку C client, по отношению к которой был скомпилирован плагин.
Если вам нужно проверить, знает ли ваша установка Connector/Python о C Extension, проверьте значение HAVE_CEXT. Существует несколько подходов к этому. Предположим, что ваши обычные аргументы для функции mysql.connector.connect() указаны в словаре:
config = {
'user': 'scott',
'password': 'password',
'host': '127.0.0.1',
'database': 'employees',
}
Следующий пример иллюстрирует способ добавления use_pure к аргументам подключения:
import mysql.connector
if mysql.connector.__version_info__ > (2, 1) and mysql.connector.HAVE_CEXT:
config['use_pure'] = False
Если значение use_pure=False и C Extension недоступны, Connector/Python автоматически переключится на чистую Python реализацию.
© 2025 Oracle
Licensed under the GPLv2 License.