安装 mysql-python 时出现“无法打开包含文件:‘config-win.h’:没有此文件或目录”
- 2025-02-25 09:09:00
- admin 原创
- 40
问题描述:
我正在尝试在 Windows 上使用 pip 在虚拟环境中安装 mysql-python。起初,我得到了与此处报告的相同的错误,但那里的答案也适用于我。现在我收到以下错误:
_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:
我所要做的就是转到 Oracle,下载 MySQL Connector C 6.0.2(较新的版本不起作用!)并进行典型安装。
https://downloads.mysql.com/archives/cc/
确保通过自定义安装包含所有可选附加程序(额外二进制文件),否则 win64.msi 无法运行
完成后,我进入 pycharms,选择要安装的 MySQL-python>=1.2.4 包,效果很好。无需更新任何配置或类似的东西。这是我能用到的最简单的版本。
解决方案 2:
接受的解决方案似乎不再适用于较新版本的 mysql-python。安装程序不再提供site.cfg
要编辑的文件。
如果你正在安装 mysql-python,它会查找C:Program Files (x86)MySQLMySQL Connector C 6.0.2include
。如果你安装了 64 位 MySQL,你可以简单地调用:
mklink /d "C:Program Files (x86)MySQLMySQL Connector C 6.0.2include" "C:Program FilesMySQLMySQL Connector C 6.0.2include"
跑步
pip install mysql-python
删除步骤1中创建的符号链接
解决方案 3:
mysql 5.5 更新和 config-win.h 不可见问题
在 5.5 config-win 中,实际上已移至 Windows 中的 Connector 单独文件夹。例如:
C:\Program Files\MySQL\Connector C 6.0.2\include
为了解决这个问题,不仅需要下载“dev bits”(它实际上连接了连接器),还需要修改 mysqldb 安装脚本以添加包含文件夹。我已经做了一个快速的肮脏修复。
站点.cfg:
# Windows connector libs for MySQL.
connector = C:Program FilesMySQLConnector 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'libopt') ]
即你的setup_windows.py看起来很像这样:
...
library_dirs = [ os.path.join(mysql_root, r'libopt') ]
library_dirs = [ os.path.join(options['connector'], r'libopt') ]
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' ]
...
解决方案 4:
接受的答案已过时。一些建议已纳入包中,但我仍然收到有关缺少 config-win.h 和 mysqlclient.lib 的错误。
安装mysql-connector-c-6.0.2-win32.msi
连接器也有一个 zip 文件,但它不起作用,因为
mysqlclient.lib
它在lib
目录中,而安装程序需要它在 中lib/opt
。无需破解 site.cfg 或 setup_windows.py,msi 就可以完成这项工作。
pip 安装 mysql-python
PS 由于我不再使用 MySQL,我的答案可能也过时了。
解决方案 5:
我知道这篇文章已经很老了,但它仍然在谷歌上排名靠前,所以我将为这个问题添加更多信息。
我遇到了与 OP 相同的问题,但建议的答案似乎都对我不起作用。主要是因为“config-win.h”在连接器安装文件夹中的任何地方都不存在。
我正在使用最新的 Connector C 6.1.6,因为这是 MySQL 安装程序建议的。
然而,最新的 MySQL-python 包 (1.2.5) 似乎不支持此功能。尝试安装时,我发现它明确在寻找 C Connector 6.0.2。
"-IC:Program Files (x86)MySQLMySQL Connector C 6.0.2include"
因此,通过从https://dev.mysql.com/downloads/file/?id=378015安装此版本,python 包安装没有任何问题。
解决方案 6:
最可能的答案是安装 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
解决方案 7:
如果 pip 无法安装“MySQLdb”,解决方法是先从此链接下载并安装到你的机器上
http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
然后将所有 MySQL 和 _mysql 文件和目录从系统 Python 复制到 Virtualenv 目录:
c:Python27Libsite-packages
(或与你的系统 Python 类似的路径)到c:my_virtenvLibsite-packages
(你的虚拟环境的路径)
解决方案 8:
好吧,如果您仍然遇到问题,您可以从http://code.google.com/p/soemin/downloads/detail?name=MySQL-python-1.2.3.win32-py2.7.exe下载安装程序
解决方案 9:
我也曾因 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
解决方案 10:
安装 mysql 的 dev bits 解决了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”复制到我的虚拟环境中,按照上面链接中的建议进行了编辑,一切运行正常。
解决方案 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,并使用 Program Files (x86) 创建一个新路径并将内容粘贴到那里,因为安装没有在 32 位和 64 位机器之间进行正确检查。
因此,新路径是 C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2。这是安装程序要查找的路径,因此我将文件粘贴到那里以帮助安装程序找到文件,这导致了有关缺少 config-win.h 的错误
解决方案 13:
适用于 Windows10 的步骤:
转至
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
解决方案 14:
尝试ActivePython,
pypm -E C:myvirtualenv install mysql-python
解决方案 15:
我确实遵循了 Bugagotti 的答案,但它在我的 Windows(Win7 64 位,py27 并且安装了 mysql 连接器 6.1)上不适用于 mysql-python-1.2.5,因此我在 mysql-python-1.2.5 中做了一些甚至肮脏的更改:
首先,site.cfg:
connector = C:Program FilesMySQLMySQL 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'libs9') ] ## the original value was r'libopt'
然后它终于成功了。
解决方案 16:
我按照沈明才的方法去做了。
但就我而言,我将连接器更改为
connector = C:Program FilesMySQLMySQL Connector.C 6.1
并且 library_dirs 更改为
library_dirs = [ os.path.join(connector, r'libs10') ]
因为我没有vs9
目录。它可以工作,但我不知道为什么。
我装了vs2012,连接器的lib目录下只有和vs10
,vs11
不起作用vs11
,我安装的VCForPyhton27.mis好像支持vs9
。
无论如何,这有效。如果你愿意冒险,你可以尝试一下。
解决方案 17:
对我有用的解决方案Windows
:安装MySQL Connector/C 6.0.2的 32
-bit 和-bit 版本。打开并运行:64
`Command Prompt`
pip install mysql-python
解决方案 18:
对我来说,以下方法解决了该问题(Python 3.5.2;mysqlclient 1.3.9):
下载最新的 MySQL C 连接器http://dev.mysql.com/downloads/connector/c/(对我来说是 Windows(x86,64 位),MSI 安装程序)
将目录复制
c:Program FilesMySQLMySQL Connector C 6.0.2
到c:Program Files (x86)MySQLMySQL Connector C 6.1
跑步
pip install mysqlclient
[可选] 删除
c:Program Files (x86)MySQLMySQL Connector C 6.1
这里的问题仅针对 x64 位安装所有者,因为构建脚本正在尝试定位 x86 程序文件目录中包含的 C 连接器。
解决方案 19:
building '_mysql' extension
creating build emp.win-amd64-2.7
creating build emp.win-amd64-2.7Release
C:UsersTimHuangAppDataLocalProgramsCommonMicrosoftVisual C++ for Python9.0VCBinamd64cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 "-IC:Program Files (x86)MySQLMySQL Connector C 6.0.2include" -Ic:python27include -Ic:python27PC /Tc_mysql.c /Fobuild emp.win-amd64-2.7Release_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 FilesMySQLMySQL Connector C 6.0.2
到C:Program Files (x86)MySQLMySQL Connector C 6.0.2
我尝试创建符号链接,但 Windows 一直拒绝我
`C:WINDOWSsystem32>mklink /d "C:Program Files (x86)MySQLMySQL Connector C 6.0.2include" "C:Program FilesMySQLMySQL Connector C 6.0.2include"
The system cannot find the path specified.`
解决方案 20:
如果您在虚拟环境中执行此操作(无论使用 Visual Studio 还是其他方式),请尝试 easy_install MySQL-python
解决方案 21:
从此处下载
* Python 2.7:https://pypi.python.org/pypi/mysqlclient/1.3.9
* Python 3.6:https://pypi.python.org/pypi/mysqlclient
然后通过 pip 安装程序安装此 whl。Shift + 在已下载文件夹中单击鼠标右键并选择
Open powershell here
。然后使用命令进行安装:pip install package_name.whl
解决方案 22:
从以下位置下载 Connector 版本。https://dev.mysql.com/downloads/connector/c/6.0.html
我安装的是 64 位 Connector,而 Python 是 32 位。因此,我必须将 MySQL 从 Program Files 复制到 Program Files(86)
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)