Py学习  »  Python

通过pip install在python3.4.4上安装mysql时出现问题

krunal • 4 年前 • 2028 次点击  

我试图在windows上使用pip在virtualenv中安装mysql python。一开始,我也犯了同样的错误 reported here ,但答案对我也有用。现在我得到以下错误:

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

如果我将(win7)符号链接到我的常规(而不是virtualenv)python的站点包/mysqldb dir,我将得到

Error loading MySQLdb module: No module named _mysql

我在这里有点不知所措。有什么线索吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44364
 
2028 次点击  
文章 [ 22 ]  |  最新文章 4 年前
David P
Reply   •   1 楼
David P    5 年前

窗口10的步骤:

  • https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
  • 根据python版本和硬件规格下载正确的版本:对于我的情况, mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl 适用于Python3.7和Intel CPU。
  • 当您的env仍处于激活状态时,转到下载文件夹并运行 pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl
ishwar rimal
Reply   •   2 楼
ishwar rimal    5 年前

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

Jacky Pham
Reply   •   3 楼
Jacky Pham    6 年前
  1. 从这里下载

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

Saher Ahwal
Reply   •   4 楼
Saher Ahwal    7 年前

如果在虚拟环境中执行此操作(无论是否使用Visual Studio),请尝试 easy_install MySQL-python

timbuntu2
Reply   •   5 楼
timbuntu2    6 年前
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.2 C:\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.

Dagaz
Reply   •   6 楼
Dagaz    7 年前

对我来说,以下方法解决了这个问题(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:\程序文件(x86)\ MySQL\MySQL连接器C 6.1\

这里的问题仅适用于x64位安装所有者,因为生成脚本正试图在x86程序文件目录中找到c connector includes。

raul
Reply   •   7 楼
raul    7 年前

对我有用的解决方案 Windows :安装两个 32 -比特和 64 -位版本的 MySQL Connector/C 6.0.2 . 正常开放 Command Prompt 然后运行:

pip install mysql-python
zijuexiansheng
Reply   •   8 楼
zijuexiansheng    9 年前

我遵循沈明才的方法。

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

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

图书馆的目录改成了

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

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

我已经安装了vs2012,连接器的lib目录只有 vs10 vs11 其中 VS11 不起作用。我安装的vcforpyhton27.mis似乎支持 VS9 .

不管怎样,这是可行的。如果你想冒险,你可以试试。

Mingcai SHEN
Reply   •   9 楼
Mingcai SHEN    10 年前

我确实遵循了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'

后来终于成功了。

Sridhar Ratnakumar
Reply   •   10 楼
Sridhar Ratnakumar    13 年前

尝试 ActivePython ,

pypm -E C:\myvirtualenv install mysql-python
Ryan
Reply   •   11 楼
Ryan    10 年前

在我的例子中,我的修复程序是复制从mysql-connector-c-6.0.2-win32.msi(在上一篇文章中从用户名缓冲区引用)创建的文件夹,该文件夹位于C:\ Program Files\mysql\mysql connector C 6.0.2,并创建一个带有程序文件(x86)的新路径,并将内容粘贴到那里,因为32位和64位计算机之间的安装检查不正确。

因此,新路径是c:\程序文件(x86)\ mysql\mysql连接器c 6.0.2。这是安装程序要查找的路径,因此我将文件粘贴到那里以帮助安装程序查找文件,这导致了有关缺少config win.h的错误。

Gil Baggio
Reply   •   12 楼
Gil Baggio    5 年前

最简单的工作解决方案:

下载 mysql连接器c 6.0.2 从下面链接并安装。

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

安装mysql connector c 6.0.2之后,将文件夹“mysql connector c6.0.2”从“c:\ program files\mysql”复制到“c:\ program files(x86)\ mysql”。

然后类型

pip install MySQL-python

一定会成功的。

saturdayplace
Reply   •   13 楼
saturdayplace    14 年前

安装dev bits for 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中,在上面的链接中建议进行编辑,一切正常。

Yassine ElBadaoui
Reply   •   14 楼
Yassine ElBadaoui    11 年前

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

Ethan
Reply   •   15 楼
Ethan    12 年前
Dmitriy
Reply   •   16 楼
Dmitriy    10 年前

如果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 (你的虚拟世界之路)

chodorowicz
Reply   •   17 楼
chodorowicz    14 年前

最可能的答案是安装mysql developer build并在配置期间选择“c headers\libs”选项。(如本文所述:在rationalpie.wordpress.com上的windows上构建mysqldb for python)

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

Jimmy
Reply   •   18 楼
Jimmy    7 年前

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

我和OP有同样的问题,但是没有一个建议的答案对我有用。主要是因为“config win.h”在连接器安装文件夹中不存在。

我使用的是最新的连接器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包没有任何问题。

user
Reply   •   19 楼
user    6 年前

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

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

    Conenctor也有一个zip文件,但那不起作用,因为 mysqlclient.lib 是在 lib 目录,而安装程序需要 它在 lib/opt . 与其黑客攻击site.cfg或setup_windows.py,不如 MSI做这项工作。

  • pip安装mysql python

另外,由于我不再使用mysql,我的答案可能也过时了。

Gili
Reply   •   20 楼
Gili    10 年前

公认的解决方案似乎不再适用于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中创建的符号链接