Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pip3 install mysqlclient fails on mysql version >= 8.3.0 #687

Closed
AvishekDe opened this issue Jan 30, 2024 Discussed in #686 · 4 comments
Closed

pip3 install mysqlclient fails on mysql version >= 8.3.0 #687

AvishekDe opened this issue Jan 30, 2024 Discussed in #686 · 4 comments

Comments

@AvishekDe
Copy link

Discussed in #686

Originally posted by AvishekDe January 29, 2024

What OS and which version do you use?

macOS 14.3

How did you installed mysql client library?

brew install mysql

Output from pkg-config --cflags --libs mysqlclient

-I/opt/homebrew/Cellar/mysql-client/8.3.0/include/mysql -L/opt/homebrew/Cellar/mysql-client/8.3.0/lib -lmysqlclient

How did you tried to install mysqlclient?

pip install mysqlclient

Output of building mysqlclient

Collecting mysqlclient
  Using cached mysqlclient-2.2.1.tar.gz (89 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: mysqlclient
  Building wheel for mysqlclient (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for mysqlclient (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [58 lines of output]
      # Options for building extension module:
        extra_compile_args: ['-I/opt/homebrew/Cellar/mysql-client/8.3.0/include/mysql', '-std=c99']
        extra_link_args: ['-L/opt/homebrew/Cellar/mysql-client/8.3.0/lib', '-lmysqlclient']
        define_macros: [('version_info', (2, 2, 1, 'final', 0)), ('__version__', '2.2.1')]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-14.1-arm64-cpython-311
      creating build/lib.macosx-14.1-arm64-cpython-311/MySQLdb
      copying src/MySQLdb/release.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb
      copying src/MySQLdb/cursors.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb
      copying src/MySQLdb/connections.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb
      copying src/MySQLdb/__init__.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb
      copying src/MySQLdb/times.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb
      copying src/MySQLdb/converters.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb
      copying src/MySQLdb/_exceptions.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb
      creating build/lib.macosx-14.1-arm64-cpython-311/MySQLdb/constants
      copying src/MySQLdb/constants/FLAG.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb/constants
      copying src/MySQLdb/constants/CLIENT.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb/constants
      copying src/MySQLdb/constants/__init__.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb/constants
      copying src/MySQLdb/constants/ER.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb/constants
      copying src/MySQLdb/constants/CR.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb/constants
      copying src/MySQLdb/constants/FIELD_TYPE.py -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb/constants
      running egg_info
      writing src/mysqlclient.egg-info/PKG-INFO
      writing dependency_links to src/mysqlclient.egg-info/dependency_links.txt
      writing top-level names to src/mysqlclient.egg-info/top_level.txt
      reading manifest file 'src/mysqlclient.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      adding license file 'LICENSE'
      writing manifest file 'src/mysqlclient.egg-info/SOURCES.txt'
      copying src/MySQLdb/_mysql.c -> build/lib.macosx-14.1-arm64-cpython-311/MySQLdb
      running build_ext
      building 'MySQLdb._mysql' extension
      creating build/temp.macosx-14.1-arm64-cpython-311
      creating build/temp.macosx-14.1-arm64-cpython-311/src
      creating build/temp.macosx-14.1-arm64-cpython-311/src/MySQLdb
      clang -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/opt/homebrew/opt/mysql-client/include "-Dversion_info=(2, 2, 1, 'final', 0)" -D__version__=2.2.1 -I/Users/avishekde/.pyenv/versions/3.11.6/include/python3.11 -c src/MySQLdb/_mysql.c -o build/temp.macosx-14.1-arm64-cpython-311/src/MySQLdb/_mysql.o -I/opt/homebrew/Cellar/mysql-client/8.3.0/include/mysql -std=c99
      src/MySQLdb/_mysql.c:527:9: error: call to undeclared function 'mysql_ssl_set'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
              mysql_ssl_set(&(self->connection), key, cert, ca, capath, cipher);
              ^
      src/MySQLdb/_mysql.c:527:9: note: did you mean 'mysql_close'?
      /opt/homebrew/Cellar/mysql-client/8.3.0/include/mysql/mysql.h:797:14: note: 'mysql_close' declared here
      void STDCALL mysql_close(MYSQL *sock);
                   ^
      src/MySQLdb/_mysql.c:1795:9: error: call to undeclared function 'mysql_kill'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          r = mysql_kill(&(self->connection), pid);
              ^
      src/MySQLdb/_mysql.c:1795:9: note: did you mean 'mysql_ping'?
      /opt/homebrew/Cellar/mysql-client/8.3.0/include/mysql/mysql.h:525:13: note: 'mysql_ping' declared here
      int STDCALL mysql_ping(MYSQL *mysql);
                  ^
      src/MySQLdb/_mysql.c:2011:9: error: call to undeclared function 'mysql_shutdown'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          r = mysql_shutdown(&(self->connection), SHUTDOWN_DEFAULT);
              ^
      3 errors generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for mysqlclient
Failed to build mysqlclient
ERROR: Could not build wheels for mysqlclient, which is required to install pyproject.toml-based projects
@etripier
Copy link

See #688.

@methane
Copy link
Member

methane commented Jan 30, 2024

Thank you for reporting.
Please using stable (LTS) version instead of beta (innovation) version for now.
I will fix them before it become LTS.

@AvishekDe AvishekDe changed the title pip3 install mysqlclient fails on MacOS Sonoma pip3 install mysqlclient fails on mysql version >= 8.3.0 Feb 2, 2024
@methane methane closed this as completed Feb 3, 2024
@vivek005457
Copy link

@etripier, @methane Still getting same error.

Collecting mysqlclient
Using cached mysqlclient-2.2.1.tar.gz (89 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: mysqlclient
Building wheel for mysqlclient (pyproject.toml) ... error
error: subprocess-exited-with-error

× Building wheel for mysqlclient (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [59 lines of output]
Trying pkg-config --exists mysqlclient
# Options for building extension module:
extra_compile_args: ['-I/opt/homebrew/Cellar/mysql/8.3.0/include/mysql', '-std=c99']
extra_link_args: ['-L/opt/homebrew/Cellar/mysql/8.3.0/lib', '-lmysqlclient']
define_macros: [('version_info', (2, 2, 1, 'final', 0)), ('version', '2.2.1')]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-12-arm64-cpython-311
creating build/lib.macosx-12-arm64-cpython-311/MySQLdb
copying src/MySQLdb/release.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb
copying src/MySQLdb/cursors.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb
copying src/MySQLdb/connections.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb
copying src/MySQLdb/init.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb
copying src/MySQLdb/times.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb
copying src/MySQLdb/converters.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb
copying src/MySQLdb/_exceptions.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb
creating build/lib.macosx-12-arm64-cpython-311/MySQLdb/constants
copying src/MySQLdb/constants/FLAG.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb/constants
copying src/MySQLdb/constants/CLIENT.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb/constants
copying src/MySQLdb/constants/init.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb/constants
copying src/MySQLdb/constants/ER.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb/constants
copying src/MySQLdb/constants/CR.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb/constants
copying src/MySQLdb/constants/FIELD_TYPE.py -> build/lib.macosx-12-arm64-cpython-311/MySQLdb/constants
running egg_info
writing src/mysqlclient.egg-info/PKG-INFO
writing dependency_links to src/mysqlclient.egg-info/dependency_links.txt
writing top-level names to src/mysqlclient.egg-info/top_level.txt
reading manifest file 'src/mysqlclient.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'src/mysqlclient.egg-info/SOURCES.txt'
copying src/MySQLdb/mysql.c -> build/lib.macosx-12-arm64-cpython-311/MySQLdb
running build_ext
building 'MySQLdb.mysql' extension
creating build/temp.macosx-12-arm64-cpython-311
creating build/temp.macosx-12-arm64-cpython-311/src
creating build/temp.macosx-12-arm64-cpython-311/src/MySQLdb
clang -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk "-Dversion_info=(2, 2, 1, 'final', 0)" -D__version
=2.2.1 -I/opt/homebrew/opt/python@3.11/Frameworks/Python.framework/Versions/3.11/include/python3.11 -c src/MySQLdb/_mysql.c -o build/temp.macosx-12-arm64-cpython-311/src/MySQLdb/_mysql.o -I/opt/homebrew/Cellar/mysql/8.3.0/include/mysql -std=c99
src/MySQLdb/_mysql.c:527:9: error: call to undeclared function 'mysql_ssl_set'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
mysql_ssl_set(&(self->connection), key, cert, ca, capath, cipher);
^
src/MySQLdb/_mysql.c:527:9: note: did you mean 'mysql_close'?
/opt/homebrew/Cellar/mysql/8.3.0/include/mysql/mysql.h:797:14: note: 'mysql_close' declared here
void STDCALL mysql_close(MYSQL *sock);
^
src/MySQLdb/_mysql.c:1795:9: error: call to undeclared function 'mysql_kill'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
r = mysql_kill(&(self->connection), pid);
^
src/MySQLdb/_mysql.c:1795:9: note: did you mean 'mysql_ping'?
/opt/homebrew/Cellar/mysql/8.3.0/include/mysql/mysql.h:525:13: note: 'mysql_ping' declared here
int STDCALL mysql_ping(MYSQL *mysql);
^
src/MySQLdb/_mysql.c:2011:9: error: call to undeclared function 'mysql_shutdown'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
r = mysql_shutdown(&(self->connection), SHUTDOWN_DEFAULT);
^
3 errors generated.
error: command '/usr/bin/clang' failed with exit code 1
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for mysqlclient
Failed to build mysqlclient
ERROR: Could not build wheels for mysqlclient, which is required to install pyproject.toml-based projects

@methane
Copy link
Member

methane commented Feb 4, 2024

@etripier, @methane Still getting same error.

Issue is closed when fix is committed in main branch. not when fix is released.
So don't expect you can see fix from pip install when issue is closed. You need install from main branch, not from PyPI.

Anyway, I will make new release soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants