18

I'm trying to run my Python 3 project on my newly formatted Mac OS High Sierra 10.13.4, by first running pipenv install to get the dependencies, but that fails.

Specifically, the part where it fails to install dependencies is the mysqlclient part.

This error message shows up:

_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); ^ 

Configuration

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 

Full terminal error log

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('\r\n', '\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('\r\n', '\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('\r\n', '\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/ 

I'm frustrated enough to want to uninstall all my python installations, but I'm just afraid I might screw something up with Mac that relies on the prebuilt outdated Python version.

How can I get my dependencies to be installed correctly?

2
  • I'm getting this same error with exact same versions of MySQL (8.0.11) and macOS (10.13), but slightly different version of python (3.6.1) Commented May 14, 2018 at 19:48
  • Worked when I changed to MySQL v5.7.22 Commented May 14, 2018 at 20:04

3 Answers 3

29

mysqlclient is not compatible with MySQL 8.0.11 at the time of this writing. Using MySQL v5.7.x will fix this issue (at least on macOS).

Sign up to request clarification or add additional context in comments.

3 Comments

That must have been what I did, because I don't know what I did but my setup got fixed. I must have switched back to MySQL 5.7.x as well. Couldn't write what I did (sorry mate) because I couldn't remember what I did that fixed it.
brew uninstall mysql; brew reinstall [email protected]; brew pin mysql; brew switch mysql 5.7.22 [remove 8.0.x; make sure 5.7.22 is there; prevent unintentional upgrades beyond 5.7.22; link 5.7.22 as default mysql command].
Due to (I believe) a change in how Brew treats alternate app formulae, brew pin mysql; brew switch mysql 5.7.22 from medmunds' answer no longer works. You need to run brew pin [email protected]; brew link --overwrite [email protected] --force, instead.
2

If you are using macOS

then can use this command

$ LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient 

Comments

0

If you are getting this error:

Building wheels for collected packages: mysqlclient Running setup.py bdist_wheel for mysqlclient ... error

While installing myclient using pip then follow the below steps:

  1. Download miniconoda (small in size and contains required files)/anacondoa(all) Click to download Miniconda

  2. Install it

  3. Check the installation using commind "conda list" in cmd

  4. Run this command then, "conda install -c miniconda mysqlclient" this is alternative way to install mysqlclient

Once executed successfully then run again pip install mysqlclient , you will find that your sqlclient is already installed successfully.

Hope this will resolve your issue. still not please share the error details. Would love to help.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.