pip установить mysqlclient не удалось " работает setup.py колесо bdist для mysqlclient ... ошибка"

Я пытаюсь запустить свой проект Python 3 на моем недавно отформатированном Mac OS High Sierra 10.13.4, сначала запустив pipenv install чтобы получить зависимости, но это не удается.

в частности, часть, где не удается установить зависимости, является частью mysqlclient.

это сообщение об ошибке появляется:

_mysql.c:1894:3: error: use of undeclared identifier 'my_bool'
              my_bool recon = reconnect;
              ^
_mysql.c:1895:58: error: use of undeclared identifier 'recon'
              mysql_options(&self->connection, MYSQL_OPT_RECONNECT, &recon);
                                                                     ^

конфигурация

darrenkarlsapalo@admins-MacBook-Pro ~/g/t/thesis-nltk> python --version
Python 2.7.10

darrenkarlsapalo@admins-MacBook-Pro ~/g/t/thesis-nltk> python3 --version
Python 3.6.5

darrenkarlsapalo@admins-MacBook-Pro ~/g/t/thesis-nltk> brew install mysql-connector-c
Warning: mysql-connector-c 6.1.11 is already installed, its just not linked
You can use `brew link mysql-connector-c` to link this version.

darrenkarlsapalo@admins-MacBook-Pro ~/g/t/thesis-nltk> brew link mysql-connector-c
Linking /usr/local/Cellar/mysql-connector-c/6.1.11... 
Error: Could not symlink bin/my_print_defaults
Target /usr/local/bin/my_print_defaults
is a symlink belonging to mysql. You can unlink it:
  brew unlink mysql

To force the link and overwrite all conflicting files:
  brew link --overwrite mysql-connector-c

To list all files that would be deleted:
  brew link --overwrite --dry-run mysql-connector-c

darrenkarlsapalo@admins-MacBook-Pro ~/g/t/thesis-nltk> mysql --version
mysql  Ver 8.0.11 for macos10.13 on x86_64 (MySQL Community Server - GPL)

darrenkarlsapalo@admins-MacBook-Pro ~/g/t/thesis-nltk> brew install mysql
Warning: mysql 5.7.22 is already installed and up-to-date
To reinstall 5.7.22, run `brew reinstall mysql`

darrenkarlsapalo@admins-MacBook-Pro ~/g/t/thesis-nltk> brew info openssl
openssl: stable 1.0.2o (bottled) [keg-only]
SSL/TLS cryptography library
https://openssl.org/
/usr/local/Cellar/openssl/1.0.2o_1 (1,791 files, 12.3MB)
  Poured from bottle on 2018-04-20 at 13:06:42
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/openssl.rb
==> Dependencies
Build: makedepend ✘
==> Options
--without-test
    Skip build-time tests (not recommended)
==> Caveats
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

This formula is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.

If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/openssl/lib
    CPPFLAGS: -I/usr/local/opt/openssl/include

полный журнал ошибок терминала

darrenkarlsapalo@admins-MacBook-Pro ~/g/t/thesis-nltk> pip install mysqlclient
Collecting mysqlclient
  Using cached https://files.pythonhosted.org/packages/6f/86/bad31f1c1bb0cc99e88ca2adb7cb5c71f7a6540c1bb001480513de76a931/mysqlclient-1.3.12.tar.gz
Building wheels for collected packages: mysqlclient
  Running setup.py bdist_wheel for mysqlclient ... error
  Complete output from command /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/var/folders/75/hg3nj2sx13567pbv76wdycqm0000gn/T/pip-install-mj5god72/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /private/var/folders/75/hg3nj2sx13567pbv76wdycqm0000gn/T/pip-wheel-_frnx3t4 --python-tag cp36:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-10.9-x86_64-3.6
  copying _mysql_exceptions.py -> build/lib.macosx-10.9-x86_64-3.6
  creating build/lib.macosx-10.9-x86_64-3.6/MySQLdb
  copying MySQLdb/__init__.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
  copying MySQLdb/compat.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
  copying MySQLdb/connections.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
  copying MySQLdb/converters.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
  copying MySQLdb/cursors.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
  copying MySQLdb/release.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
  copying MySQLdb/times.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
  creating build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
  copying MySQLdb/constants/__init__.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
  copying MySQLdb/constants/CLIENT.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
  copying MySQLdb/constants/CR.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
  copying MySQLdb/constants/ER.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
  copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
  copying MySQLdb/constants/FLAG.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
  copying MySQLdb/constants/REFRESH.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
  running build_ext
  building '_mysql' extension
  creating build/temp.macosx-10.9-x86_64-3.6
  gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch x86_64 -g -Dversion_info=(1,3,12,'final',0) -D__version__=1.3.12 -I/usr/local/mysql/include -I/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c _mysql.c -o build/temp.macosx-10.9-x86_64-3.6/_mysql.o
  _mysql.c:1894:3: error: use of undeclared identifier 'my_bool'
                  my_bool recon = reconnect;
                  ^
  _mysql.c:1895:58: error: use of undeclared identifier 'recon'
                  mysql_options(&self->connection, MYSQL_OPT_RECONNECT, &recon);
                                                                         ^
  2 errors generated.
  error: command 'gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for mysqlclient
  Running setup.py clean for mysqlclient
Failed to build mysqlclient
Installing collected packages: mysqlclient
  Running setup.py install for mysqlclient ... error
    Complete output from command /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/var/folders/75/hg3nj2sx13567pbv76wdycqm0000gn/T/pip-install-mj5god72/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record /private/var/folders/75/hg3nj2sx13567pbv76wdycqm0000gn/T/pip-record-vkhrazcr/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib.macosx-10.9-x86_64-3.6
    copying _mysql_exceptions.py -> build/lib.macosx-10.9-x86_64-3.6
    creating build/lib.macosx-10.9-x86_64-3.6/MySQLdb
    copying MySQLdb/__init__.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
    copying MySQLdb/compat.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
    copying MySQLdb/connections.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
    copying MySQLdb/converters.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
    copying MySQLdb/cursors.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
    copying MySQLdb/release.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
    copying MySQLdb/times.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb
    creating build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/__init__.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/CLIENT.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/CR.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/ER.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/FLAG.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/REFRESH.py -> build/lib.macosx-10.9-x86_64-3.6/MySQLdb/constants
    running build_ext
    building '_mysql' extension
    creating build/temp.macosx-10.9-x86_64-3.6
    gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch x86_64 -g -Dversion_info=(1,3,12,'final',0) -D__version__=1.3.12 -I/usr/local/mysql/include -I/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c _mysql.c -o build/temp.macosx-10.9-x86_64-3.6/_mysql.o
    _mysql.c:1894:3: error: use of undeclared identifier 'my_bool'
                    my_bool recon = reconnect;
                    ^
    _mysql.c:1895:58: error: use of undeclared identifier 'recon'
                    mysql_options(&self->connection, MYSQL_OPT_RECONNECT, &recon);
                                                                           ^
    2 errors generated.
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/var/folders/75/hg3nj2sx13567pbv76wdycqm0000gn/T/pip-install-mj5god72/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record /private/var/folders/75/hg3nj2sx13567pbv76wdycqm0000gn/T/pip-record-vkhrazcr/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/75/hg3nj2sx13567pbv76wdycqm0000gn/T/pip-install-mj5god72/mysqlclient/

Я достаточно расстроен, чтобы захотеть удалить весь мой python установки, но я просто боюсь, что я могу испортить что-то с Mac, который полагается на предварительно построенную устаревшую версию Python.

Как правильно установить мои зависимости?

2 ответов


mysqlclient не совместим с MySQL 8.0.11 на момент написания этой статьи. Используете MySQL версии 5.7.x исправит эту проблему (по крайней мере, на macOS).


Если вы получаете эту ошибку:

построение колес для собранных пакетов: mysqlclient работает setup.py bdist_wheel для mysqlclient ... ошибка

при установке myclient с помощью pip выполните следующие действия:

  1. скачать miniconoda (малый размер и содержит необходимые файлы) / anacondoa (все) Нажмите, чтобы загрузить Miniconda

  2. установить это

  3. Проверьте установку с помощью commind "conda list" в cmd

  4. затем выполните эту команду"conda install -c miniconda mysqlclient " Это альтернативный способ установить mysqlclient

после успешного выполнения запустите снова pip install mysqlclient, вы обнаружите, что ваш sqlclient уже установлен успешно.

надеюсь, это решит вашу проблему. все еще не пожалуйста, поделитесь деталями ошибки. С удовольствием помогу.