Spec-Zone.ru › MySQL Connectors 1.0

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.
https://docs.oracle.com/cd/E17952_01/connector-python-en/connector-python-cext-development.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API