Python 3.7, Неудачное строительное колесо для MySql-Python

Я новичок в python, и я пробую фреймворк django, который включает в себя некоторый MySql, и столкнулся с этой ошибкой при попытке сделать pip install mysqlclient и вниз по строкам сообщений cmd, которые я получил.

   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\

кто-нибудь знает как это исправить?

Это может помочь: stackoverflow.com/a/4290261/747744

Eugene Primako 30.06.2018 20:51

Я не могу помочь с созданием колеса для Python 3.7, но если вы просто хотите использовать Python 3 с mysqlclient, тогда pip install mysqlclient==1.3.12 с Python 3.6 должен установить предварительно созданное колесо без каких-либо проблем.

Alasdair 30.06.2018 22:18

Вы можете попробовать этот неофициальный руль lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

iklinac 30.06.2018 23:07

Рад, что у тебя все получилось. Лучше использовать последнюю версию 3.6.x, чтобы убедиться, что вы получаете последние исправления ошибок и безопасности.

Alasdair 01.07.2018 16:38

pip install mysqlclient == 1.3.12 мне помог. Я был в python 3.7, затем удалил его и установил python 3.6.5. Тогда эта команда сработала для меня

Shamsul Arefin Sajib 05.08.2018 17:56

Установка этого sudo apt-get install libssl-dev решена для меня

Junaid 02.01.2020 08:21
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
21
6
52 335
12

Ответы 12

в настоящее время mysql-коннектор для python 3.7 недоступен на официальном сайте, но вы можете исправить эту проблему, установив wheel с определенными окнами и версией python. это решениеpip install (ex/dir)/mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl для win 64-bi и python 3.7

перейдите по ссылке ниже и загрузите колесо, соответствующее вашей системе. загрузите и установите колесо для конкретной версии, используя «pip install (полный путь с именем файла в моем случае, например: -» pip install C: \ Users \% user% \ Downloads \ mysqlclient-1.3.13-cp37-cp37m-win_amd64 .whl ")

Используйте Анаконда и выполните conda install mysqlclient

Вам необходимо установить файл "mysqlclient-1.4.1-cp37-cp37m-win32.whl" (32 бит)

  1. Скачайте файл 32 бит с сайта https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
  2. если ваш файл находится в папке Загрузки, напишите команду в вашем cmd

    я. cd C:\Users\Nour Noby\Downloads[ "Nour Noby" следует заменить ]

    II. pip install mysqlclient-1.4.1-cp37-cp37m-win32.whl[ "mysqlclient-1.4.1-cp37-cp37m-win32.whl" следует заменить загруженным имя файла].

Вам необходимо установить следующие зависимости перед установкой mysqlclient для Python 3.7 в вашей системе.

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

Я надеюсь, что это поможет вам.

работал в ubuntu 19.04 с python 3.7.3 и pip 19.1.1.

aasmpro 01.06.2019 15:08

После этого я тоже запустил этот pip install mysqlclient.

Imran Zahoor 20.06.2019 17:48

По состоянию на 2019 год, вот как без проблем работать с pip install mysqlclient на MacOS:

brew info openssl и следуйте командам внизу

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

Другие подходы:

  • brew install/upgrade/reinstall mysql: не решил проблему для меня, но имеет приятный побочный эффект, позволяющий убедиться, что ваша установка чистая.
  • brew install mysql-connector-c: чтобы это сработало, вам нужно отключить mysql, который разрушает вашу настройку, и это не решило проблему для меня.

убедившись, что вы сделали все необходимое с помощью python ...

и установка на глобальном уровне ... (не в виртуальной среде)

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

Я столкнулся с той же проблемой, потому что я установил Python2.7.15 по умолчанию, и python3 сломался бы даже после выполнения необходимого для Python (будучи python2)

что-то, что сработало для меня, было (эффективно последнее - это то, что заставило его работать, но я думаю, что они в равной степени требовались в моей виртуальной среде с python3)

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

python3.7 в вашем случае в virtualenv

Мне тоже пришлось пережить ..

Я установил его с помощью следующей команды и теперь работает хорошо (на Mac): LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient

см. связанный ответ: Ошибка при установке mysql-python: библиотека для -lssl не найдена

Я установил следующую библиотеку на Ubuntu, и после этого проблема была решена.

sudo apt-get install libssl-dev

а затем я смог установить mysqlclient, используя следующую команду

pip install mysqlclient

используйте эту команду: sudo apt-get install libssl-dev

Пожалуйста, попытайтесь объяснить немного подробнее.

Calos 02.01.2020 08:38

Попробуй сначала

sudo apt-get install python3.7-dev

потом

pip install mysqlclient

В моем случае у меня была установлена ​​32-битная версия Python вместо 64-битной. Установите 64-битный Python, и он будет работать нормально.

Другие вопросы по теме