在Windows中将MySQL与Python集成


102

我发现在Windows系统中很难将MySQL与Python结合使用。

我目前正在使用Python 2.6。我试图使用提供的安装脚本来编译MySQL-python-1.2.3b1(应该适用于Python 2.6吗?)源代码。安装脚本将运行,并且不会报告任何错误,但不会生成_mysql模块。

我也尝试过为Python 2.5设置MySQL,但没有成功。使用2.5的问题是Python 2.5是使用Visual Studio 2003编译的(我使用提供的二进制文件安装了它)。我在Windows系统上安装了Visual Studio 2005。因此setuptools无法生成_mysql模块。

有什么帮助吗?


2
3年以来已经因为这段时间里有人问,和2年自去年高投票的答案,查看更新后的答案下面的Python 3.2(或见wiki.python.org/moin/MySQL
伊兰棉兰

Answers:


127

python-mysqldb的下载页面。该页面包含适用于Python 2.5、2.6和2.7的32位和64位版本的二进制文件。

也有关于消除弃用警告的讨论

更新:这是一个旧的答案。目前,我建议使用PyMySQL。它是纯python,因此它同样支持所有操作系统,几乎是mysqldb的直接替代品,并且还可以与python 3一起使用。最好的安装方法是使用pip。您可以从这里安装它(更多说明在此处),然后运行:

pip install pymysql

谁能确认第一个链接的可执行文件可用于Python 2.6?安装初始屏幕显示它只有2.5-但是我认为构建它的人可能还没有更新该文档行。
约翰C,2010年

我安装了python 2.7 x64,但是在导入MySQLdb时出现“ ImportError:没有名为_mysql_windows.api的模块”错误。请任何人帮助我解决此问题。
Vilva

4
做完之后pip install pymysqlsyncdb仍然抱怨缺少MySQLdb模块。
Shailen

当我在Windows 8.1 64位系统中运行此命令时,它显示:追溯(最近一次调用为最后一次):文件“ C:\ Python33 \ Scripts \ pip-script.py”,第5行,位于pkg_resources中<module>中,导入load_entry_point ImportError:没有名为“ pkg_resources”的模块
hizbul25,2014年

@shailenTJ(以及有类似问题的任何人)请看这里
itsadok 2014年

31

这可能听起来像您的爷爷给我的建议,但是这里的所有答案都没有提到最好的方法:去安装ActivePython而不是python.org Windows二进制文件。很长一段时间以来,我真的想知道为什么在Windows上进行Python开发如此之薄-直到安装了activestate python。我不隶属于他们。这只是简单的事实。写在每堵墙上:Windows上的Python开发= ActiveState!然后您就可以pypm install mysql-python正常工作了。没有编译狂欢。没有奇怪的错误。没有恐怖。五分钟后就可以开始编码并进行实际工作。这是在Windows上运行的唯一方法。真。


2
如果不需要企业版订阅,这将是一个完美的解决方案……
Matheus Moreira 2010年

4
@ matheus.emm-在Windows 32位上安装MySQLdb不需要Business Edition。
Sridhar Ratnakumar,2010年

7
@ matheus.emm-为了免费访问,您可以在Windows 7 64位操作系统上安装32位 ActivePython ,然后安装mysql-python。ActivePython 64位确实需要订阅BE才能安装软件包。
Sridhar Ratnakumar 2010年

2
这是很好的建议。如果您在生产中认真使用Python,我认为Business Edition非常值得。如果一个月可以为您节省几个小时的工作,那么它就是值得的。所有这些配置上的头痛让我想起了开源业务模型:“免费提供软件,但是安装和使用起来非常困难,因此需要购买手册和/或支持。” 唯一的问题是,其中许多项目没有提供或出售支持,因为它们将开源视为一种意识形态,而不是一种商业模式。哈尔兹
达娜·霍尔特

1
只需使用activepython社区版进行安装,它就像一个魅力。强烈推荐
Cleber Goncalves,

15

随着Python新手学习Python生态系统,我已经完成了这一步。

  1. 安装setuptools 说明

  2. 安装MySQL 5.1。从此处下载97.6MB MSI 您不能使用Essentials 版本,因为它不包含C库。
    确保选择一个自定义安装,并标记要安装的开发工具/库,因为默认情况下未完成安装。这是获取C头文件所必需的。
    您可以通过在安装目录中查找名为“ include”的文件夹来验证您是否已正确完成此操作。EG C:\ Program Files \ MySQL \ MySQL Server 5.1 \ include。它应该有一堆.h文件。

  3. 此处安装Microsoft Visual Studio C ++ Express 2008 这是获取C编译器所必需的。

  4. 以管理员身份打开命令行(右键单击Cmd快捷方式,然后“以管理员身份运行”。请确保打开一个新窗口 安装这些内容否则您的路径将不会更新,并且安装仍将失败。

  5. 在命令提示符下:

    easy_install -b C:\ temp \ sometempdir mysql-python

    那将失败-可以。

    现在,在您的临时目录C:\ temp \ sometempdir中打开site.cfg,并将“ registry_key”设置编辑为:

    Registry_key =软件\ MySQL AB \ MySQL Server 5.1

    现在将CD放入您的临时目录,并:

    python setup.py干净

    python setup.py安装

    您应该准备好摇滚!

  6. 是一个非常简单的脚本,可以根据需要开始为您学习Python DB API。


7

我发现一个人已经成功地为python2.6构建了mysql,并共享了链接,网址为http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

...您可能会在导入MySQLdb时看到警告,这很正常,不会造成任何伤害,

C:\ Python26 \ lib \ site-packages \ MySQLdb__init __。py:34:DeprecationWarning:sets模块已从set import ImmutableSet中弃用








1

因为我在(pylons / pyramid)virtualenv中运行python,所以无法(有效地)运行以前链接的二进制安装程序。

我在执行Willie的回答步骤时遇到问题,但我确定问题是(可能)我正在运行Windows 7 x64 install,这将mysql的注册表项放在稍有不同的位置,特别是在我的情况下(请注意:正在运行5.5版):“ HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ MySQL AB \ MySQL Server 5.5”。

但是,路径中不能包含“ HKEY_LOCAL_MACHINE \”,否则它将失败。

另外,我必须在步骤3和4之间重新启动。

在完成所有这些工作之后,IMO可以从cygwin运行整个python dev环境会更聪明。




0

您还可以将pyodbcMySQL Connector / ODBC一起使用,以在Windows上使用MySQL。 Unixodbc也可用于使代码在Linux上兼容。Pyodbc使用标准的Python DB API 2.0,因此如果您坚持要在MySQL / PostgreSQL / SQLite / ODBC / JDBC驱动程序等之间进行切换,应该会比较轻松。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.