web-dev-qa-db-fra.com

Python 3.7, Échec de la construction d'une roue pour MySql-Python

Je suis nouveau sur python et j'essaie Django qui implique un peu de MySQL et a rencontré cette erreur lorsque vous essayez de faire pip install mysqlclient et en bas des lignes de messages cmd, je l’ai compris.

   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 c:\users\ronanl~1\envs\py1\scripts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\RONANL~1\\AppData\\Local\\Temp\\pip-install-pkbqy3t3\\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 C:\Users\RONANL~1\AppData\Local\Temp\pip-record-moxwf7lu\install-record.txt --single-version-externally-managed --compile --install-headers c:\users\ronanl~1\envs\py1\include\site\python3.7\mysqlclient:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.7
    copying _mysql_exceptions.py -> build\lib.win32-3.7
    creating build\lib.win32-3.7\MySQLdb
    copying MySQLdb\__init__.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\compat.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\connections.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\converters.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\cursors.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\release.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\times.py -> build\lib.win32-3.7\MySQLdb
    creating build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\__init__.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\CLIENT.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\CR.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\ER.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\FLAG.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\REFRESH.py -> build\lib.win32-3.7\MySQLdb\constants
    running build_ext
    building '_mysql' extension
    creating build\temp.win32-3.7
    creating build\temp.win32-3.7\Release
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Dversion_info=(1,3,13,'final',0) -D__version__=1.3.13 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include" "-Ic:\users\ronan lina\appdata\local\programs\python\python37-32\include" "-Ic:\users\ronan lina\appdata\local\programs\python\python37-32\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\cppwinrt" /Tc_mysql.c /Fobuild\temp.win32-3.7\Release\_mysql.obj /Zl
    _mysql.c
    _mysql.c(29): fatal error C1083: Cannot open include file: 'mysql.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.14.26428\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
> 
> 
> Command "c:\users\ronanl~1\envs\py1\scripts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\RONANL~1\\AppData\\Local\\Temp\\pip-install-pkbqy3t3\\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 C:\Users\RONANL~1\AppData\Local\Temp\pip-record-moxwf7lu\install-record.txt --single-version-externally-managed --compile --install-headers c:\users\ronanl~1\envs\py1\include\site\python3.7\mysqlclient" failed with error code 1 in C:\Users\RONANL~1\AppData\Local\Temp\pip-install-pkbqy3t3\mysqlclient\

quelqu'un sait comment résoudre ce problème?

9
ronan

actuellement, le connecteur mysql pour python 3.7 n'est pas disponible sur le site officiel, mais vous pouvez résoudre ce problème en installant wheel avec des fenêtres spécifiques et python version. this solutionpip install (ex/dir)/mysqlclient-1.3.13-cp37-cp37m-win_AMD64.whl pour win 64-bi et python 3.7

vérifiez le lien ci-dessous et téléchargez la roue spécifique à votre système. téléchargez et installez la molette pour une version spécifique en utilisant "pip install" (chemin complet avec le nom du fichier dans mon cas, par exemple: - "pip install C:\Utilisateurs \% utilisateur%\Downloads\mysqlclient-1.3.13-cp37 -cp37m-win_AMD64.whl ")

Vous devez installer les dépendances suivantes avant d’installer mysqlclient pour python 3.7 sur votre système.

Sudo apt-get install python3.7-dev default-libmysqlclient-dev

J'espère que cela t'aidera.

2
PyMaster

en vous assurant que vous avez fait le nécessaire avec python ...

et installer au niveau global ... (pas d'environnement virtuel)

Sudo apt-get install mysql-serverpip install --upgrade setuptools

J'avais rencontré le même problème, car j'avais installé la configuration par défaut de Python2.7.15, et python3 serait cassé même après avoir effectué le nécessaire pour Python (étant python2)

quelque chose qui a fonctionné pour moi était (effectivement le dernier est ce qui a fait que ça marche, mais je pense qu’ils étaient également nécessaires sur mon environnement virtuel avec python3)

Sudo apt-get install libmysqlclient-dev
Sudo apt-get install python3-pymysql
Sudo apt-get install python3.6-dev

python3.7 dans votre cas dans le virtualenv

Je devais aussi passer par ..

1
Mehdi

Vous devez installer le fichier "mysqlclient-1.4.1-cp37-cp37m-win32.whl" ( 32 bits ).

  1. Télécharger le fichier 32 bits de https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
  2. si votre fichier est dans le dossier Téléchargements , écrivez la commande dans votre cmd

    je. cd C:\Users\Nour Noby\Downloads [ "Nour Noby" devrait être changé ]

    ii. pip install mysqlclient-1.4.1-cp37-cp37m-win32.whl [ "mysqlclient-1.4.1-cp37-cp37m-win32.whl" doit être remplacé par votre fichier téléchargé nom de fichier ] .

1
Nour Noby

À partir de 2019, voici comment fonctionner correctement pip install mysqlclient sur MacOS:

brew info openssl et suivez les instructions en bas

  echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc

Autres approches:

  • brew install/upgrade/reinstall mysql: n'a pas résolu le problème pour moi, mais a pour effet secondaire de vous assurer que votre installation est propre.
  • brew install mysql-connector-c: pour que cela fonctionne, vous devez dissocier mysql, ce qui ruine votre configuration et ne résout pas le problème pour moi.
1
louis_guitton

Je l'ai installé avec la commande suivante et fonctionne bien maintenant (sur Mac): LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient

voir la réponse connectée: Erreur lors de l'installation de mysql-python: bibliothèque introuvable pour -lssl

0
István Döbrentei