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

sat*_*ace 73 python windows pip virtualenv mysql-python

我正在尝试使用pip on windows在virtualenv中安装mysql-python.起初,我在这里报告了相同的错误,但答案也适用于我.现在我收到以下错误:

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

如果我symlink(Win7)到我的常规(不是virtualenv's)python的site-packages/MySQLdb dir我得到

Error loading MySQLdb module: No module named _mysql
Run Code Online (Sandbox Code Playgroud)

我在这里相当茫然.有什么指针吗?

Kev*_*sel 89

我所要做的只是转到oracle,然后下载MySQL Connector C 6.0.2(更新版本不起作用!)并进行典型安装.

旧链接(未找到页面)

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

新链接

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

确保通过自定义安装包含所有可选附加功能(额外二进制文件),但这些不适用于win64.msi

完成后,我进入了pycharms,选择了MySQL-python> = 1.2.4软件包进行安装,效果很好.无需更新任何配置或类似的任何内容.这是我完成的最简单的版本.

希望能帮助到你

  • 安装MySQL Connector C 6.0.2后,我尝试了"pip install MySQL-python".它仍然显示相同的错误.然后我将文件夹"MySQL Connector C 6.0.2"从"C:\ Program Files\MySQL"复制到"C:\ Program Files(x86)\ MySQL",它工作得很好!! (37认同)
  • +1到目前为止这个问题的最简单答案.需要注意的是,选择适当的驱动程序架构(x86/64bit). (10认同)
  • 我必须安装x64的连接器并将MySql文件夹从"Program Files"移动到"Program Files(x86)"目录,因为构建脚本正在寻找它 (9认同)
  • 观看32位或64位!但就像一个魅力! (4认同)
  • 老兄,你是一个救生员.由于这个错误,我一直在拉我的头发一段时间,我尝试了所有其他更复杂的解决方案.感谢您提供这样一个简单的解决方案 (3认同)
  • 确保下载32位版本的连接器.使用32位连接器,它将与MySQL-python == 1.2.5一起使用 (2认同)
  • 当前版本的MySQL-python(1.2.5)不适用于MySQL安装程序将安装的最新6.1连接器.确保安装6.0.2.连接器. (2认同)

Gil*_*ili 25

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

  • 这是解决方案的正确理念,但它对我不起作用.为解决此问题,我将目录C:\ Program Files\MySQL\MySQL Connector C 6.0.2 \复制到C:\ Program Files(x86)\ MySQL\MySQL Connector C 6.0.2 \.这解决了我的问题 (10认同)
  • 复制目录也适合我. (2认同)
  • 这适用于包含文件但不适用于lib文件.您不能只将32位lib文件夹符号链接到64位等效文件夹.最好是单独安装32位和64位SQL Connector软件包,而不是符号链接任何东西. (2认同)

Bug*_*tti 18

更新mysql 5.5和config-win.h不明显的问题

在5.5配置中.实际上已经移动到Windows中的Connector单独文件夹.即smth喜欢:

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
Run Code Online (Sandbox Code Playgroud)

在setup_windows.py中找到该行

include_dirs = [ os.path.join(mysql_root, r'include') ]:
Run Code Online (Sandbox Code Playgroud)

并添加:

include_dirs = [ os.path.join(options['connector'], r'include') ]
Run Code Online (Sandbox Code Playgroud)

在它之后.

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


差点忘了提.以同样的方式,需要为lib添加类似的附加条目:

library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]
Run Code Online (Sandbox Code Playgroud)

即你的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' ]
...
Run Code Online (Sandbox Code Playgroud)

  • 什么是"dev bits?Google甚至不知道这些是什么:( (3认同)

use*_*ser 15

接受的答案已过时.一些建议已经包含在包中,我仍然得到关于缺少config-win.h和mysqlclient.lib的错误.

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

    还有一个用于连接器的zip文件,但由于mysqlclient.liblib目录中而安装程序需要它,因此无效 lib/opt.msi完成了这项工作,而不是破解site.cfg或setup_windows.py.

  • pip install mysql-python

PS由于我不再使用MySQL,我的答案也可能已经过时了.

  • 尼斯.我安装了x64版但没有用.然后我按照你的建议安装了x86和voilà!我正在使用Python 3.4.3并运行`pip install mysql-python`并且它可以工作.;-) (2认同)

jim*_*mmy 11

我知道这篇文章已经超级老了,但它仍然会成为谷歌的热门话题,所以我会在这个问题上添加更多信息.

我遇到了与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"
Run Code Online (Sandbox Code Playgroud)

所以从https://dev.mysql.com/downloads/file/?id=378015安装这个版本安装的python包没有任何问题.


cho*_*icz 7

最有可能的答案是在配置期间安装MySQL Developer Build并选择"C headers\libs"选项.(如本条目所述:在rationalpie.wordpress.com上的Windows上为Python构建MySQLdb)

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

  • 我在virtualenv下使用了这个exe文件和easy_install,它在Windows XP下运行良好 (2认同)

Dmi*_*riy 5

如果pip无法安装"MySQLdb",则解决方法是首先从此链接下载并在您的计算机上安装它

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

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

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