75

我正在尝试在 windows 上使用 pip 在 vi​​rtualenv 中安装 mysql-python。起初,我在这里报告了同样的错误,但那里的答案也对我有用。现在我收到以下错误:

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

如果我将(Win7)符号链接到我的常规(不是 virtualenv 的)python 的 site-packages/MySQLdb 目录,我会得到

Error loading MySQLdb module: No module named _mysql

我在这里比较茫然。任何指针?

4

22 回答 22

92

我所要做的就是转到 oracle,下载 MySQL 连接器 C 6.0.2(更新的不起作用!)并进行典型安装。

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

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

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

希望能帮助到你

于 2013-05-18T00:29:25.413 回答
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 中创建的符号链接
于 2013-08-09T06:29:01.810 回答
18

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

在 5.5 配置中获胜。实际上已移至 Windows 中的连接器单独文件夹。即:

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

要克服这个问题,不仅需要下载“dev bits”(实际上连接连接),还需要修改 mysqldb 安装脚本以添加包含文件夹。我已经做了一个快速的脏修复。

站点.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作者改变行为之前有效。


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

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' ]
...
于 2011-04-16T07:48:27.163 回答
15

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

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

    连接器也有一个 zip 文件,但这不起作用,因为 mysqlclient.lib它在lib目录中,而安装程序期望它在lib/opt. msi 完成了这项工作,而不是破解 site.cfg 或 setup_windows.py。

  • 点安装 mysql-python

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

于 2013-09-27T17:19:21.023 回答
11

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

我遇到了与 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 包没有任何问题。

于 2016-08-09T08:55:16.620 回答
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

于 2010-01-26T19:32:44.097 回答
5

如果 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 的路径)

于 2013-12-07T00:07:58.637 回答
4

我对 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

于 2013-01-03T02:50:09.973 回答
4

好吧,如果您仍然遇到问题,您可以从http://code.google.com/p/soemin/downloads/detail?name=MySQL-python-1.2.3.win32-py2.7 下载安装程序。可执行程序

于 2011-07-17T10:59:03.043 回答
3

为 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 中,在上面的链接中进行了建议的编辑,一切正常。

于 2009-12-29T15:51:33.283 回答
3

最简单的工作解决方案:

从下面的链接下载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

它肯定会奏效。

于 2017-09-11T19:42:51.447 回答
2

就我而言,我的修复方法是复制从 mysql-connector-c-6.0.2-win32.msi 创建的文件夹(从上一篇文章中的用户名缓冲区引用),该文件夹位于 c:\Program Files\MySQL\MySQL Connector C 6.0.2 并使用 Program Files (x86) 创建一个新路径并将内容粘贴到那里,因为安装未正确检查 32 位和 64 位机器之间的检查。

因此,新路径是 C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2。这是安装程序要查找的路径,因此我将文件粘贴到那里以帮助安装程序查找文件,这导致有关缺少 config-win.h 的错误

于 2013-12-08T21:24:13.783 回答
2

Window10的步骤:

  • https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
  • 根据 python 版本和硬件规格下载正确的版本:就我而言, mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl适用于 python3.7 和 Intel CPU。
  • 当您的环境仍处于激活状态时,转到下载文件夹并运行pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl
于 2019-04-02T19:47:42.263 回答
1

试试ActivePython

pypm -E C:\myvirtualenv install mysql-python
于 2011-03-22T22:21:49.563 回答
1

我按照沈明才的方法。

但就我而言,我将连接器更改为

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

并且 library_dirs 更改为

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

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

我安装了vs2012,连接器的lib目录只有vs10and vs11,在里面vs11不起作用。我安装的 VCForPyhton27.mis 似乎支持vs9.

无论如何,这行得通。如果你想冒险,你可以试试。

于 2014-12-27T22:07:08.807 回答
1

我确实遵循了 Bugagotti 的答案,但它在我的 mysql-python-1.2.5 的 Windows(Win7 64 位,py27 并安装了 mysql 连接器 6.1)中不起作用,所以我在 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'

然后它终于奏效了。

于 2014-03-28T02:39:36.667 回答
1

对我有用的解决方案Windows:安装MySQL Connector/C 6.0.232的-bit 和64-bit 版本 。打开并运行:Command Prompt

pip install mysql-python
于 2016-10-07T20:43:25.940 回答
1

对我来说,以下方法解决了这个问题(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 位安装所有者,因为构建脚本试图找到 x86 程序文件目录中包含的 C 连接器。

于 2017-01-10T21:06:26.527 回答
1
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.2C:\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.

于 2018-04-13T00:00:24.430 回答
0

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

于 2016-10-28T05:13:07.763 回答
0

下载连接器的版本https://dev.mysql.com/downloads/connector/c/6.0.html 就我而言,我安装了 64 位连接器,而我的 python 是 32 位。所以我不得不将 MySQL 从程序文件复制到 Program Files(86)

于 2018-04-25T16:42:48.130 回答
0
  1. 从此下载

  2. 然后通过 pip 安装程序安装这个 whl。Shift + 右键单击​​已下载文件夹并选择Open powershell here. 然后使用命令安装:pip install package_name.whl

于 2017-08-20T16:08:09.177 回答