"Невозможно открыть файл include:" config-win.h ": нет такого файла или каталога" при установке mysql-python

Я пытаюсь установить 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 site-packages/MySQLdb, я получаю

Error loading MySQLdb module: No module named _mysql

Я здесь не в порядке. Любые указатели?

Ответ 1

Обновление для mysql 5.5 и config-win.h не видно проблемы

В версии 5.5 config-win. фактически переместился в отдельную папку Connector в окнах. то есть smth like:

C:\Program Files\MySQL\Connector C 6.0.2\include

Чтобы преодолеть эту проблему, нужно не только загружать "dev bits" (который фактически соединяет соединитель), но и изменять сценарии установки mysqldb для добавления папки include. Я сделал быстрое грязное исправление.

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' ]
...

Ответ 2

Все, что мне нужно было сделать, это перейти к oracle, скачать MySQL Connector C 6.0.2 (более новая версия не работает!) И выполнить обычную установку.

старая ссылка (страница не найдена)

http://dev.mysql.com/downloads/connector/c/6.0.html#downloads

новая ссылка

https://downloads.mysql.com/archives/cc/

Обязательно включите все дополнительные дополнения (Extra Binaries) через пользовательскую установку, без них это не сработало бы для win64.msi

Как только это было сделано, я пошел в pycharms и выбрал пакет MySQL-python> = 1.2.4 для установки, и он отлично работал. Не нужно обновлять конфигурацию или что-то подобное. Это была самая простая версия для меня.

Надеюсь, поможет

Ответ 3

Принятое решение больше не работает для более новых версий 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

Ответ 4

Принятый ответ устарел. Некоторые из предложений уже были включены в пакет, и я все еще получал сообщение об ошибке config-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 install mysql-python

P.S. Поскольку я больше не использую MySQL, мой ответ также может быть устаревшим.

Ответ 5

Я знаю, что этот пост супер старый, но он по-прежнему подходит как лучший хит в Google, поэтому я добавлю дополнительную информацию в эту проблему.

У меня были те же проблемы, что и у OP, но ни один из предложенных ответов не работал у меня. В основном потому, что "config-win.h" не существовало нигде в папке установки соединителя.

Я использовал последний Connector C 6.1.6, так как это было предложено установщиком MySQL.

Это, однако, похоже, не поддерживается последним пакетом MySQL-python (1.2.5). При попытке установить его я мог видеть, что он явно ищет C Connector 6.0.2.

"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include"

Итак, установив эту версию из https://dev.mysql.com/downloads/file/?id=378015 пакет python без проблем.

Ответ 6

Скорее всего, ответ заключается в установке MySQL Developer Build и выборе опции "C headers\libs" во время конфигурации. (как сообщается в этой записи: Создание MySQLdb для Python в Windows на rationalpie.wordpress.com)

Возможно, даже лучшее решение - установить предварительно скомпилированную сборку: http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

Ответ 7

Если pip не может установить "MySQLdb", обходной путь - сначала скачать и установить его на свой компьютер по этой ссылке

http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

затем скопируйте все файлы и каталоги MySQL * и _mysql * из системного Python в каталог Virtualenv:

c:\Python27\Lib\site-packages (или аналогичный путь к вашей системе Python) до c:\my_virtenv\Lib\site-packages (путь к вашему virtualenv)

Ответ 10

Установка бит dev для 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, сделал редактирование, предложенное в приведенной выше ссылке, и все работает нормально.

Ответ 11

Самое простое рабочее решение:

Загрузите MySQL, Connector C 6.0.2 от ссылки ниже и Установите.

http://dev.mysql.com/downloads/connector/c/6.0.html#downloads

После установки MySQL Connector C 6.0.2 скопируйте папку "MySQL Connector C 6.0.2" из "C:\Program Files\MySQL" в "C:\Program Files (x86)\MySQL".

Затем введите

pip install MySQL-python

Это определенно будет работать.

Ответ 12

В моем случае мое исправление копировало папку, созданную из 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. Это путь, который установщик ищет, чтобы найти, поэтому я вставил туда файлы, чтобы помочь установщику найти файлы, что вызывало ошибку в отсутствии config-win.h

Ответ 13

Попробуйте ActivePython,

pypm -E C:\myvirtualenv install mysql-python

Ответ 14

Я выполнил ответ от Bugagotti, и он не работает в моих окнах (Win7 64 бит, py27 и имеет установленный mysql-коннектор 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

To:

#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'

Затем он работал наконец.

Ответ 15

Я следил за методом Mingcai SHEN.

Но в моем случае я заменил соединитель на

connector = C:\Program Files\MySQL\MySQL Connector.C 6.1

И library_dirs изменен на

library_dirs = [ os.path.join(connector, r'lib\vs10') ]

потому что у меня нет каталога vs9. Он работает, но я не знаю, почему.

У меня установлен vs2012, а каталог lib на коннекторе имеет только vs10 и vs11, в котором vs11 не работает. Установленный VCForPyhton27.mis, похоже, поддерживает vs9.

В любом случае, это работает. И если вы хотите рискнуть, вы можете попробовать.

Ответ 16

Решение, которое работало для меня на Windows: установите как 32 -bit, так и 64 -битные версии MySQL Connector/C 6.0 0,2. Откройте Command Prompt и запустите:

pip install mysql-python

Ответ 17

Для меня был решен следующий подход (Python 3.5.2; mysqlclient 1.3.9):

  • Загрузите последний MySQL C Connector http://dev.mysql.com/downloads/connector/c/ (для меня был Windows (x86, 64-разрядный), установщик MSI)
  • Скопировать каталог c:\Program Files\MySQL\MySQL Connector C 6.0.2\ в c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
  • Запустить pip install mysqlclient
  • [необязательно] удалить c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\

Проблема здесь только для владельцев установки 64-разрядной версии, так как build script пытается найти соединитель C, содержащийся в каталоге файлов программ x86.

Ответ 18

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

Если вы видите это при попытке pip install mysql-python, самый простой способ - скопировать

C:\Program Files\MySQL\MySQL Connector C 6.0.2 - C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2

Я пытался создать символическую ссылку, но Windows продолжает выдавать меня 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.

Ответ 19

Если вы делаете это в виртуальной среде независимо от того, используете ли Visual Studio или нет, попробуйте easy_install MySQL-python

Ответ 20

  • Загрузить из этого

  • Затем установите этот параметр whl by pip. Shift + щелкните правой кнопкой мыши в папке Загруженные и выберите Open powershell here. Затем установите с помощью команды: pip install package_name.whl

Ответ 21

Загрузите версию Connector с https://dev.mysql.com/downloads/connector/c/6.0.html В моем случае я установил 64-битный коннектор, а мой python был 32-битным. Поэтому мне пришлось скопировать MySQL из программных файлов в Program Files (86)

Ответ 22

Шаги для Window10:

  • Перейдите на https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
  • Загрузите правильную версию в соответствии с версией Python и спецификациями оборудования: для моего случая mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl работает для python3.7 и процессоров Intel.
  • Пока ваш env еще активирован, перейдите в папку загрузки и запустите pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl