pip install mysqlclient возвращает "фатальная ошибка C1083: невозможно открыть файл:" mysql.h ": нет такого файла или каталога
Вот эта проблема: я пытаюсь установить mysqlclient так
C:\Users\amccommon349> pip install mysqlclient Сбор mysqlclient с использованием кэшированного https://files.pythonhosted.org/packages/ec/fd/83329b9d3e14f7344d1 cb31f128e6dbba70c5975c9e57896815d.13l.gif.gif.gt.dll
Установка собранных пакетов: mysqlclient
Запуск setup.py install для mysqlclient... ошибка
Complete output from command c:\users\amccommon349\appdata\local\programs\python\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\AMCCOM~1\\AppData\\Local\\Temp\\pip-install-qcgo48hf\\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\AMCCOM~1\AppData\Local\Temp\pip-record-q4yoftj8\install-record.txt --single-version-externally-managed --compile:
c:\users\amccommon349\appdata\local\Programs\python\python36\lib\distutils\d ist.py:261: предупреждение пользователя: неизвестный параметр распространения: тип long_description_content_
warnings.warn(msg)
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.6
copying _mysql_exceptions.py -> build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\__init__.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\compat.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\connections.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\converters.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\cursors.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\release.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\times.py -> build\lib.win-amd64-3.6\MySQLdb
creating build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\__init__.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\CLIENT.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\CR.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\ER.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\FLAG.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\REFRESH.py -> build\lib.win-amd64-3.6\MySQLdb\constants
работает build_ext
building '_mysql' extension
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\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\amccommon349\appdata\local\programs\python\python36\include -Ic:\users\amccommon349\appdata\local\programs\python\python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\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:\ProgramFiles (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.win-amd64-3.6\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\\BuildTools\\VC\\Tools\\MSVC\\14.14.26428\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
Я позаботился о том, чтобы у меня были все файлы, необходимые для инструментов сборки visual studios, я скачал соединитель mysql-python и обновил мои pip и инструменты настройки. Я - полный новичок в этом и был бы признателен за любую информацию о том, как исправить эту ошибку.
Ответы
Ответ 1
Вы можете скачать неофициальные двоичные файлы Windows для вашей версии Python, используя https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient. Затем установите его с помощью pip. Таким образом, вы сможете избежать хлопот, связанных с визуальными инструментами для сборки студии.
Просто скачайте наиболее подходящий для вас файл mysqlclient.whl. Я думаю, что в вашем случае это будет
mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl
и запустить
pip install "path to the downloaded .whl file"
Ответ 2
Эта ошибка возникает при попытке установить mysqlclient для python32 в 64-разрядных средах. Удалите python и переустановите 64-битную версию. Затем pip install mysqlclient будет работать без ошибок.
Ответ 3
Это проблема с 64-битной версией python для Windows 10. Следующее исправило эту проблему для меня.
- Установите 32-битную версию Python для Windows (в настоящее время версия 3.7.1)
- Установите визуальные инструменты для сборки студии
https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017
для C++
- Установите 32-разрядный соединитель mysql версии 6.1.11 из https://downloads.mysql.com/archives/c-c/
После этого я смог установить mysqlclient с pip install mysqlclient
.
Надеюсь, кто-то найдет лучшее решение, которое не требует понижения до 32 бит, потому что это не хорошее решение, оно просто работает. Я нашел способ обойти проблему mysql, но столкнулся с проблемой снова при попытке установить каналы. Кажется, что Python 64-битный ищет 32-битные библиотеки вместо 64-битных библиотек в Windows. До сих пор это решение решило все мои проблемы сборки Python на Windows.
Ответ 4
Ну, наверное, это одна из самых глупых ошибок, которые я когда-либо видел.
У меня есть Python 3.7.3 32bit вместе с последней версией pip3, и я устанавливал колеса на свой Python.... и я наткнулся на эту ошибку STUPID....
Возможно, моя ситуация немного отличается, но вы можете решить ее, просто внимательно посмотрев на ошибку.... сначала кажется, что чего-то не хватает, и вы начинаете обвинять вас, Windows, 32/64bit, и список можно продолжать и продолжать...
Сделайте шаг назад... просто сделайте шаг назад и просто прочитайте неприятное красное сообщение об ошибке... прочитайте его очень хорошо.
В моем случае это было
ERROR: Command errored out with exit status 1:
command: 'c:\users\myUserName\appdata\local\programs\python\python37-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"'; __file__='"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\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\MASTER~1\AppData\Local\Temp\pip-record-z1mvci5v\install-record.txt' --single-version-externally-managed --compile
cwd: C:\Users\MASTER~1\AppData\Local\Temp\pip-install-z7x81g2q\mysqlclient\
Complete output (30 lines):
running install
running build
running build_py
creating build
creating build\lib.win32-3.7
creating build\lib.win32-3.7\MySQLdb
copying MySQLdb\__init__.py -> build\lib.win32-3.7\MySQLdb
copying MySQLdb\_exceptions.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
running build_ext
building 'MySQLdb._mysql' extension
creating build\temp.win32-3.7
creating build\temp.win32-3.7\Release
creating build\temp.win32-3.7\Release\MySQLdb
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Dversion_info=(1,4,2,'post',1) -D__version__=1.4.2.post1 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -Ic:\users\MyUserName\appdata\local\programs\python\python37-32\include -Ic:\users\MyUserName\appdata\local\programs\python\python37-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /TcMySQLdb/_mysql.c /Fobuild\temp.win32-3.7\Release\MySQLdb/_mysql.obj /Zl /D_CRT_SECURE_NO_WARNINGS
_mysql.c
MySQLdb/_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\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.21.27702\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\MyUserName\appdata\local\programs\python\python37-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"'; __file__='"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\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\MASTER~1\AppData\Local\Temp\pip-record-z1mvci5v\install-record.txt' --single-version-externally-managed --compile Check the logs for full command output.
Вы прочитали это хорошо?... я предполагаю, что у вас есть все... инструменты сборки, MySQL Connector C 6.1... вы даже переместили его в Program Files (x86)... ну и что там не так...??...
Теперь присмотритесь
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Dversion_info=(1,4,2,'post',1) -D__version__=1.4.2.post1 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -
Я почти уверен, что вы видели это... ВСЕ ЕЩЕ?.... позвольте мне выделить это для вас
"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -
MariaDB
Ну, это не может быть глупее, чем это... установщик ищет, что mariadb включает в себя и более поздние библиотеки. Просто зайдите на сайт mariadb, скачайте разъем MariaDB C/C++ и установите его...
Ну, это еще не конец.. Перейдите в C:\Program Files (x86)\MySQL\MySQL, Connector C 6.1 \, включите и создайте папку mariadb... и скопируйте и вставьте содержимое из папки подключения установки mariaDb include
опять не идите... зайдите в C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib и снова выполните ту же самую операцию для папки lib
так что вы должны иметь
C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb
C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib\mariadb
Теперь нажмите pip3 install mysqlclient
и наслаждайтесь установкой без ворчания... конец
Successfully installed mysqlclient-1.4.2.post1
Ответ 5
У меня была эта проблема (точно такая же ошибка), и я попробовал все решения, упомянутые выше, и ни одно из них не сработало (по крайней мере, для меня), на самом деле я собирался решить эту проблему, пока не нашел решение очень странным, простой и глупый способ !! ,
Я сделал следующие шаги, чтобы проблема решилась, и жизнь снова стала сладкой.
Сначала я установил MySQL Connector/C
отсюда
Второй (после завершения установки) я скопировал папку MySQL Connector C 6.1
из Program files/MySQL
в Program files (x86)/MySQL
обратите внимание, что вам, возможно, придется создать папку MySQL
если она не существует в Program files (x86)
(она не существует для меня)
Как бы просто это ни было, это работает для меня, кажется, что для некоторых (или всех) 64-битных окон, pip или, более вероятно, mysqlclient
установки mysqlclient
ищет в Program files (x86)
mysqlclient
Program files (x86)
некоторые файлы MySQL (например, "mysql.h"). ) и не ищет Program files
и, поскольку ничего не находит в Program files (x86)
выдает ошибку очень глупо !!! не так ли
Ответ 6
Потраченный впустую много времени, чтобы решить эту ошибку, я нашел решение, которое работало для меня по крайней мере.
Когда я пытался установить MYSQL Client
pip install mysqlclient
1-я ошибка
MySQLdb/_mysql.c(29): фатальная ошибка C1083: не удается открыть включаемый файл: "mysql.h": такого файла или каталога нет
А также попытался установить Django Channels
pip install -U channels
2-я ошибка
ошибка: требуется Microsoft Visual C++ 14.0. Получите его с помощью "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
Загрузить инструменты сборки: инструменты сборки Microsoft
Переполнение стека: как установить/выбрать необходимые инструменты сборки
Установленные инструменты сборки. (Счастливого кодирования)
Решение @Ralph Ritoch помогло мне и другим, кто получил ошибку Mysql Client.
Но я также установил Django Channels, поэтому я выполнил следующие действия
Следуй этим шагам
- Windows 10 64 бит
- Python 64 бит 3.7.3
- MySQL-разъем-с-6.1.11-winx64
- Инструменты сборки
Я также установил Django Channels 2.2.0 и не получаю никаких ошибок.
(Заметка)
Коннектор MySQL уже установлен в каталог x86
Скопируйте каталог c:\Program Files\MySQL\MySQL Connector C 6.0.2\в папку c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
Поэтому я не изменил каталог MySQL, Connector. (Вы также можете проверить это)
Может быть, работа для вас!
Другое решение Stack для изменения каталога
Возможные причины
Почему мы получаем ошибки.
- 32-битная версия Python
- MySQL, Connector 32/64 битная версия
- Проблема с каталогом
- Версия Windows 32/64 бит
- Инструменты сборки не установлены (если требуется Microsoft Visual C++ 14.0)
Спасибо всем, кто разместил свое решение.
Ответ 7
Я пытался сделать то же самое для проекта Django.
Я пытался использовать:
pip install mysql-python
который дал мне следующую ошибку:
'mysql.h': No such file or directory
.
После возни с reuqirements.txt, который дал мне еще одну ошибку
Downloading https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip (108kB)
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-43_6cfva/MySQL-python/setup.py", line 13, in <module>
from setup_posix import get_config
File "/tmp/pip-install-43_6cfva/MySQL-python/setup_posix.py", line 2, in <module>
from ConfigParser import SafeConfigParser
ModuleNotFoundError: No module named 'ConfigParser'
Наконец, использование этого сработало для меня:
pip install mysql-connector
import mysql.connector
Ответ 8
Ни одно из приведенных выше решений не помогло мне. Очевидно, мне пришлось понизить мой Python с 3.7.x
до 3.6.4
, и это решило проблему для меня. Ссылка для скачивания для python=3.6.4
.
Я бы порекомендовал создать для этого новую виртуальную среду, а не удалять основной питон. Найдите обширную документацию о том, как создать venv
здесь.
Ответ 9
В командной строке просто введите:
python --
вместо:
python --version
(Это должно показать более подробную информацию о версии, включая 32-разрядную или 64-разрядную версию).