“安装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安装,你可以简单地调用:
-
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中创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
那么,如果您仍然遇到问题,可以从http://code.google.com/p/soemin/downloads/detail?name=MySQL-python-1.2.3.win32-py2.7下载安装程序。可执行程序;
安装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目录只有vs10
和vs11
,其中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):
- 下载最新的MySQL C连接器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\
这里的问题仅适用于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
-
从此下载
- Python 2.7: https : //pypi.python.org/pypi/mysqlclient/1.3.9
- Python 3.6: https : //pypi.python.org/pypi/mysqlclient
-
然后通过pip安装程序安装这个whl。 Shift +右键单击已下载的文件夹,然后select
Open powershell here
。 然后使用命令pip install package_name.whl
:pip install package_name.whl