«Невозможно открыть включить файл:« config-win.h »: нет такого файла или каталога» при установке MySQL-Python
-
21-09-2019 - |
Вопрос
Я пытаюсь установить MySQL-Python в VirtualEnv с помощью PIP на Windows. Сначала я получал ту же ошибку сообщается здесь, но ответ там тоже сработал для меня. Теперь я получаю следующую ошибку:
_mysql.c(34) : Fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
Если я сочетаюсь (Win7) к моему обычному (не виртуальному) Python-Packages/mysqldb Dir я получаю
Error loading MySQLdb module: No module named _mysql
Я скорее не в недоумении. Есть указатели?
Решение
Обновление для MySQL 5.5 и config-win.h Не видимая проблема
В 5.5 конфигурация. На самом деле перенесен в разъем в Windows. т.е.
C: Program Files MySQL Connector C 6.0.2 Включите
Чтобы преодолеть проблему, необходимо не только загрузить «Dev Bits» (что фактически соединяет разъем), но также для изменения сценариев установки MySQLDB, чтобы добавить папку «Включить». Я сделал быстрое грязное исправление, как это.
site.cfg:
# Windows connector libs for MySQL.
connector = C:\Program Files\MySQL\Connector C 6.0.2
в setup_windows.py найдите строку
include_dirs = [ os.path.join(mysql_root, r'include') ]:
и добавить:
include_dirs = [ os.path.join(options['connector'], r'include') ]
после этого.
Уродливые, но работающие до тех пор, пока авторы MySQLDB не изменят поведение.
Почти забыл упомянуть. Точно так же нужно добавить аналогичную дополнительную запись для LIBS:
library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]
т.е. ваш setup_windows.py в значительной степени похож на:
...
library_dirs = [ os.path.join(mysql_root, r'lib\opt') ]
library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]
libraries = [ 'kernel32', 'advapi32', 'wsock32', client ]
include_dirs = [ os.path.join(mysql_root, r'include') ]
include_dirs = [ os.path.join(options['connector'], r'include') ]
extra_compile_args = [ '/Zl' ]
...
Другие советы
Все, что мне нужно было сделать, это перейти в Oracle и загрузить разъем MySQL C 6.0.2 (Новее не работает!и сделать типичную установку.
https://downloads.mysql.com/archives/cc/
Обязательно включите все дополнительные дополнения (дополнительные двоичные файлы) через пользовательскую установку, без них она не работала для Win64.msi
Как только это было сделано, я зашел в Pycharms и выбрал пакет MySQL-Python> = 1.2.4 для установки, и он отлично работал. Не нужно обновлять какую -либо конфигурацию или что -то в этом роде. Это была самая простая версия для меня, чтобы проработать.
Надеюсь, поможет
Принятое решение больше не работает для более новых версий MySQL-Python. Установщик больше не предоставляет site.cfg
Файл для редактирования.
Если вы устанавливаете MySQL-Python, он будет искать C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include
. Анкет Если у вас 64-битная установка MySQL, вы можете просто вызвать:
mklink /d "C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" "C:\Program Files\MySQL\MySQL Connector C 6.0.2\include"
- Бежать
pip install mysql-python
- Удалить символическую ссылку, созданную на шаге 1
Принятый ответ устарел. Некоторые из предложений уже были включены в упаковку, и я все еще получал ошибку о пропущенном конфиденциальном win.h & mysqlclient.lib.
Установить MySQL-Connector-C-6.0.2-Win32.msi
Есть zip -файл для Conenctor, но это не сработало, потому что
mysqlclient.lib
вlib
каталог, тогда как установщик ожидает этого вlib/opt
. Анкет Вместо взлома site.cfg или setup_windows.py, MSI выполняет задание.PIP установить MySQL-Python
PS Поскольку я больше не использую MySQL, мой ответ также может устареть.
Я знаю, что этот пост очень старый, но он все еще стал лучшим ударом в Google, поэтому я добавлю к этому вопросу немного больше информации.
У меня были те же проблемы, что и OP, но ни один из предложенных ответов не сработал для меня. Главным образом потому, что «config-win.h» не существовал нигде в папке установки Connector.
Я использовал последний разъем C 6.1.6, так как это было предложено установщиком MySQL.
Это, однако, не поддерживается последним пакетом MySQL-Python (1.2.5). Пытаясь установить его, я мог видеть, что он явно ищет C -разъем 6.0.2.
"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include"
Итак, установив эту версию из https://dev.mysql.com/downloads/file/?id=378015 Пакет Python установил без каких -либо проблем.
Скорее всего, ответ заключается в том, чтобы установить сборку разработчиков MySQL и выбор опции «C Headers libs» во время конфигурации. (Как сообщается в этой записи: построение MySQLDB для Python на Windows на RationalPie.wordpress.com)
Может быть, даже лучшее решение - установить предварительную сборку: http://www.technicalbard.com/files/mysql-python-1.2.2.win32-py2.6.exe
Если PIP не сможет установить «mysqldb», обходной путь должен загрузить и установить его на машине сначала с этой ссылки
http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
Затем скопируйте все файлы и каталоги MySQL* и _mysql* из вашей системы Python на ваш VirtualEnv Dir:
c:\Python27\Lib\site-packages
(или похожий на ваш системный Python) наc:\my_virtenv\Lib\site-packages
(Путь к вашему виртуальному)
Ну, если у вас все еще возникает проблема, вы можете скачать установщик из http://code.google.com/p/soemin/downloads/detail?name=mysql-python-1.2.3.win32-py2.7.exe
У меня тоже было много головной боли с MySQLDB.
Почему бы не использовать официальный разъем Python MySQL?
easy_install mysql-connector-python
Или вы можете скачать его отсюда:http://dev.mysql.com/downloads/connector/python/
Документация:http://dev.mysql.com/doc/refman/5.5/en/connector-python.html
Установка Dev Bits для MySQL избавилась от config-win.h
Ошибка у меня была, и бросил другой. Failed to load and parse the manifest. The system cannot find the file specified.
Я нашел ответ на мою проблему в этом посте: http://www.fuyun.org/2009/12/install-mysql-for-python-on-windows/.
Я скопировал файл 'c: python26 lib distutils msvc9compiler.py` в свой VirtualEnv, сделал редактирование, предложенное в приведенной выше ссылке, и все работает нормально.
Самое простое рабочее решение:
Download the Разъем MySQL C 6.0.2 По ссылке ниже и установите.
http://dev.mysql.com/downloads/connector/c/6.0.html#downloads
После установки разъема MySQL C 6.0.2 скопируйте папку «Разъем MySQL C 6.0.2» от «C: Program Files MySQL» в «C: Program Files (x86) MySQL».
Затем тип
pip install MySQL-python
Это определенно сработает.
В моем случае, в моем исправлении было копирование папки, созданной из MySQL-Connector-C-6.0.2-Win32.msi (ссылка на буфер имени пользователя в предыдущем посте), который находится по адресу C: Program Files MySQL MySQL Connector C 6.0.2 и создание нового пути с программными файлами (x86) и вставкой там содержимого, поскольку установка не проверяется между 32-битными и 64-битными машинами.
Таким образом, новый путь - C: Program Files (x86) MySQL MySQL Connector C 6.0.2. Это путь, который установщик хочет найти, поэтому я вставил файлы, чтобы помочь установщику найти файлы, что вызвало ошибку в отсутствии конфигурации.
Пытаться ActivePython,
pypm -E C:\myvirtualenv install mysql-python
Я следовал ответу от Bugagotti, и он не работает в моих Windows (Win7 64-бит, PY27 и установил MySQL Connector 6.1) для MySQL-Python-1.2.5, поэтому я сделал несколько даже грязных изменений в MySQL-Python- 1.2.5:
Во -первых, site.cfg:
connector = C:\Program Files\MySQL\MySQL Connector C 6.1
Во -вторых, _mysql.c:
#if defined(MS_WINDOWS)
#include <config-win.h>
#else
#include "my_config.h"
#endif
К:
#if 0 /*defined(MS_WINDOWS)*/
#include <config-win.h>
#else
#include "my_config.h"
#endif
И с этими изменениями проблема config_win.h исчезла, но все еще есть проблема с ссылкой:
LINK : fatal error LNK1181: cannot open input file 'mysqlclient.lib'
Для этого я изменил setup_windows.py:
library_dirs = [ os.path.join(connector, r'lib\vs9') ] ## the original value was r'lib\opt'
Тогда это сработало наконец.
Я следовал методу Mingcai Shen.
Но в моем случае я изменил разъем на
connector = C:\Program Files\MySQL\MySQL Connector.C 6.1
И библиотека_дирс изменен на
library_dirs = [ os.path.join(connector, r'lib\vs10') ]
Потому что у меня нет vs9
каталог. Это работает, но Я не знаю, почему.
У меня установлен VS2012, и в каталоге LIB разъема только vs10
а также vs11
, в котором vs11
не работает. Vcforpyhton27.mis, который я установил, похоже, поддерживает vs9
.
Во всяком случае, это работает. И если вы хотите рискнуть, вы можете попробовать.
Решение, которое сработало для меня на Windows
: Установите оба 32
-bit и 64
-bit версии MySQL Connector/C 6.0.2. Анкет Открытым Command Prompt
и беги:
pip install mysql-python
For me the following approach solved the issue (Python 3.5.2; mysqlclient 1.3.9):
- Dowload latest MySQL C Connector http://dev.mysql.com/downloads/connector/c/ (for me was Windows (x86, 64-bit), MSI Installer)
- Copy
c:\Program Files\MySQL\MySQL Connector C 6.0.2\
directory toc:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
- Run
pip install mysqlclient
- [optional] delete
c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
The issue here is only for x64 bit installation owners, since build script is trying to locate C connector includes in x86 program files directory.
building '_mysql' extension
creating build\temp.win-amd64-2.7
creating build\temp.win-amd64-2.7\Release
C:\Users\TimHuang\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" -Ic:\python27\include -Ic:\python27\PC /Tc_mysql.c /Fobuild\temp.win-amd64-2.7\Release\_mysql.obj /Zl
_mysql.c
_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
If you see this when you try pip install mysql-python
, the easiest way is to copy
C:\Program Files\MySQL\MySQL Connector C 6.0.2
to C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2
I tried to create the symbolic link but Windows keeps throwing me
C:\WINDOWS\system32>mklink /d "C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" "C:\Program Files\MySQL\MySQL Connector C 6.0.2\include"
The system cannot find the path specified.
If you are doing this in a virtual environment whether using Visual Studio or otherwise, try
easy_install MySQL-python
Download from this
- Python 2.7: https://pypi.python.org/pypi/mysqlclient/1.3.9
- Python 3.6: https://pypi.python.org/pypi/mysqlclient
Then install this whl by pip installer. Shift + right click in Downloaded folder and choose
Open powershell here
. Then install using command:pip install package_name.whl
Download the version of Connector from https://dev.mysql.com/downloads/connector/c/6.0.html
For my case I had installed 64 bit of connector and my python was 32 bit. So I had to copy MySQL from program files to Program Files(86)
Steps for Window10:
- Go to
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
- Download the right version according to python version and hardware specs: for my case,
mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl
works for python3.7 and Intel CPU. - While your env is still activated, go to the download folder and run
pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl