MySQL Connector/Python Developer Guide
      Installations of Connector/Python from version 2.1.1 on support a
      use_pure argument to
      mysql.connector.connect() that indicates
      whether to use the pure Python interface to MySQL or the C
      Extension that uses the MySQL C client library:
    
          By default, use_pure (use the pure Python
          implementation) is False as of MySQL 8 and
          defaults to True in earlier versions. If
          the C extension is not available on the system then
          use_pure is True.
        
On Linux, the C and Python implementations are available as different packages. You can install one or both implementations on the same system. On Windows and macOS, the packages include both implementations.
          For Connector/Python installations that include both implementations, it
          can optionally be toggled it by passing
          use_pure=False (to use C implementation) or
          use_pure=True (to use the Python
          implementation) as an argument to
          mysql.connector.connect().
        
          For Connector/Python installations that do not include the C Extension,
          passing use_pure=False to
          mysql.connector.connect() raises an
          exception.
        
          For older Connector/Python installations that know nothing of the C
          Extension (before version 2.1.1), passing
          use_pure to
          mysql.connector.connect() raises an
          exception regardless of its value.
        
        On macOS, if your Connector/Python installation includes the C Extension,
        but Python scripts are unable to use it, try setting your
        DYLD_LIBRARY_PATH environment variable the
        directory containing the C client library. For example:
      
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib (for sh) setenv DYLD_LIBRARY_PATH /usr/local/mysql/lib (for tcsh)
If you built the C Extension from source, this directory should be the one containing the C client library against which the extension was built.
      If you need to check whether your Connector/Python installation is aware of
      the C Extension, test the HAVE_CEXT value.
      There are different approaches for this. Suppose that your usual
      arguments for mysql.connector.connect() are
      specified in a dictionary:
    
config = {
  'user': 'scott',
  'password': 'password',
  'host': '127.0.0.1',
  'database': 'employees',
}
      The following example illustrates one way to add
      use_pure to the connection arguments:
    
import mysql.connector if mysql.connector.__version_info__ > (2, 1) and mysql.connector.HAVE_CEXT: config['use_pure'] = False
      If use_pure=False and the C Extension is not
      available, then Connector/Python will automatically fall back to
      the pure Python implementation.