“安装mysql-python时,无法打开包含文件:'config-win.h':没有这样的文件或目录”

我想在windows上使用pip在virtualenv中安装mysql-python。 起初,我收到了同样的错误报告 ,但答案也适用于我。 现在我收到以下错误:

_mysql.c(34) : Fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory 

如果我符号链接(Win7)到我的常规(而不是virtualenv)Python的站点包/ MySQLdb目录我得到

 Error loading MySQLdb module: No module named _mysql 

我在这里不知所措 任何指针?

更新为mysql 5.5和config-win.h不可见的问题

在5.5 config-win中。 实际上已经转移到窗口中连接器单独的文件夹 即不像:

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中find该行

 include_dirs = [ os.path.join(mysql_root, r'include') ]: 

并添加:

 include_dirs = [ os.path.join(options['connector'], r'include') ] 

之后。

丑陋的,但直到mysqldb作者将改变行为。


几乎忘记提及。 以同样的方式,需要为库添加类似的附加条目:

 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 Connector C 6.0.2( 较新的版本不起作用! )并进行典型的安装。

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

请确保通过自定义安装包括所有可选附加组件(额外的二进制文件),没有它们不适用于win64.msi

一旦完成,我进入pycharms,并selectMySQL-python> = 1.2.4包进行安装,而且效果很好。 无需更新任何configuration或类似的东西。 这是我通过的最简单的版本。

希望能帮助到你

接受的解决scheme似乎不再适用于较新版本的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中创build的符号链接

接受的答案已过时。 有些build议已经包含在软件包中,我仍然收到有关缺lessconfig-win.h&mysqlclient.lib的错误。

  • 安装mysql-connector-c-6.0.2-win32.msi

    还有一个压缩文件的conenctor太,但没有工作,因为mysqlclient.lib是在lib目录,而安装程序期望它在lib/opt 。 msi不是攻击site.cfg或setup_windows.py,而是msi完成这项工作。

  • pip安装mysql-python

PS不要再使用MySQL了。 也许我的答案也过时了。

我知道这个post是超级老,但它仍然是作为谷歌的顶部命中,所以我会添加一些更多的信息到这个问题。

我和OP有同样的问题,但是没有一个build议的答案似乎适用于我。 主要是因为“config-win.h”在连接器安装文件夹的任何地方都不存在。

我正在使用最新的Connector C 6.1.6,正如MySQL安装程序所build议的那样。

但是,这似乎并没有得到最新的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软件包没有任何问题。;

最有可能的答案是安装MySQL Developer Build,并在configuration过程中select“C headers \ libs”选项。 (正如此条目中所报告的:在rationalpie.wordpress.com上的Windows上构build用于Python的MySQLdb)

也许更好的解决scheme是安装预编译的版本: http : //www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

安装dev的位为mysql摆脱了我有的config-win.h错误,并扔了另一个。 Failed to load and parse the manifest. The system cannot find the file specified. 我在这篇文章中find了我的问题的答案: http : //www.fuyun.org/2009/12/install-mysql-for-python-on-windows/ 。

我把文件'C:\ Python26 \ Lib \ distutils \ msvc9compiler.py`复制到我的virtualenv中,在上面的链接中build议编辑,并且工作正常。

如果pip无法安装“MySQLdb”,解决方法是首先从该链接下载并安装到您的机器上

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

然后将所有MySQL *和_mysql *文件和目录从您的系统Python复制到您的Virtualenv目录中:

c:\Python27\Lib\site-packages (或者类似Python系统的path)到c:\my_virtenv\Lib\site-packages (到virtualenv的path)

我也对MySQLdb感到头疼。

为什么不使用官方的Mysql Python连接器?

 easy_install mysql-connector-python 

或者你可以从这里下载: http : //dev.mysql.com/downloads/connector/python/

文档: http : //dev.mysql.com/doc/refman/5.5/en/connector-python.html

在我的情况下,我的修复是复制从位于c:\ Program Files \ MySQL \ MySQL连接器的mysql-connector-c-6.0.2-win32.msi(从以前的文章中的用户名缓冲区引用)创build的文件夹C 6.0.2并创build一个新的path与程序文件(x86)和粘贴在那里的内容,因为安装不正确检查32位和64位机器。

所以,新的path是C:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.0.2。 这是安装程序正在寻找的path,所以我粘贴文件,以帮助安装程序find文件,这是导致有关缺lessconfig-win.h的错误

尝试ActivePython ,

 pypm -EC:\myvirtualenv install mysql-python 

我没有按照从Bugagotti的答案,而且它不工作在我的Windows(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 

至:

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

然后它终于工作。

我遵循了沉明才的方法。

但在我的情况下,我改变了连接器

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

而library_dirs更改为

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

因为我没有vs9目录。 它工作,但我不知道为什么

我已经安装了vs11 ,连接器的lib目录只有vs10vs11 ,其中vs11不起作用。 我安装的VCForPyhton27.mis似乎支持vs9

无论如何,这工作。 如果你想冒险,你可以试试。

Windows上为我工作的解决scheme:同时安装MySQL Connector / C 6.0.2的32位和64位版本。 打开Command Prompt并运行:

 pip install mysql-python 

对我来说,下面的方法解决了这个问题(Python 3.5.2; mysqlclient 1.3.9):

  1. 下载最新的MySQL C连接器http://dev.mysql.com/downloads/connector/c/ (对于我是Windows(x86,64位),MSI安装程序)
  2. c:\Program Files\MySQL\MySQL Connector C 6.0.2\目录复制到c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
  3. 运行pip install mysqlclient
  4. [可选]删除c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\

这里的问题仅适用于x64位安装所有者,因为构build脚本正试图将C连接器包含在x86程序文件目录中。

从下面的链接下载MySQL Connector C 6.0.2并安装。

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

安装MySQL Connector C 6.0.2后,从“C:\ Program Files \ MySQL”复制文件夹“MySQL Connector C 6.0.2”到“C:\ Program Files(x86)\ MySQL”。

然后键入

 pip install MySQL-python 

它一定会工作。

如果您在虚拟环境中使用Visual Studio或其他方式执行此操作,请尝试easy_install MySQL-python

  1. 从此下载

    • Python 2.7: https : //pypi.python.org/pypi/mysqlclient/1.3.9
    • Python 3.6: https : //pypi.python.org/pypi/mysqlclient
  2. 然后通过pip安装程序安装这个whl。 Shift +右键单击已下载的文件夹,然后selectOpen powershell here 。 然后使用命令pip install package_name.whlpip install package_name.whl