"Невозможно открыть файл 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.
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)
Ответ 8
Хорошо, если у вас все еще есть проблема, вы можете скачать программу установки из http://code.google.com/p/soemin/downloads/detail?name=MySQL-python-1.2.3.win32-py2.7.exe
Ответ 9
У меня также была большая головная боль с MySQLdb.
Почему бы не использовать официальный MysQL Python Connector?
easy_install mysql-connector-python
Или вы можете скачать его здесь:
http://dev.mysql.com/downloads/connector/python/
Документация:
http://dev.mysql.com/doc/refman/5.5/en/connector-python.html
Ответ 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
Ответ 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