«Невозможно открыть включить файл:« config-win.h »: нет такого файла или каталога» при установке MySQL-Python

StackOverflow https://stackoverflow.com/questions/1972259

Вопрос

Я пытаюсь установить 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, вы можете просто вызвать:

  1. 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"
  2. Бежать pip install mysql-python
  3. Удалить символическую ссылку, созданную на шаге 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):

  1. Dowload latest MySQL C Connector http://dev.mysql.com/downloads/connector/c/ (for me was Windows (x86, 64-bit), MSI Installer)
  2. Copy c:\Program Files\MySQL\MySQL Connector C 6.0.2\ directory to c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
  3. Run pip install mysqlclient
  4. [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

  1. Download from this

  2. 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top