【问题标题】:Integrating MySQL with Python in Windows在 Windows 中将 MySQL 与 Python 集成
【发布时间】:2010-10-13 08:31:57
【问题描述】:

我发现在我的 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 模块。

有什么帮助吗?

【问题讨论】:

  • 自从提出这个问题以来已经过去了 3 年,距离上次高票答案已经过去了 2 年,请参阅下面 Python 3.2 的更新答案(或参阅wiki.python.org/moin/MySQL

标签: python mysql windows


【解决方案1】:

Download page for python-mysqldb。该页面包括 Python 2.5、2.6 和 2.7 的 32 位和 64 位版本的二进制文件。

还有discussion on getting rid of the deprecation warning

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

pip install pymysql

【讨论】:

  • 谁能确认第一个链接的可执行文件适用于 Python 2.6?安装启动画面显示它只有 2.5 - 但我假设构建它的人可能没有更新该行文档。
  • 我安装了 python 2.7 x64 但在导入 MySQLdb 时出现“ImportError: No module named _mysql_windows.api”错误。请有人帮我解决这个问题。
  • 在完成pip install pymysql 之后,syncdb 仍然抱怨缺少MySQLdb 模块。
  • 当我在 Windows 8.1 64 位系统中运行此命令时,它显示:回溯(最近一次调用最后一次):文件“C:\Python33\Scripts\pip-script.py”,第 5 行,在 from pkg_resources import load_entry_point ImportError: No module named 'pkg_resources'
  • @shailenTJ(以及任何有类似问题的人)看看here
【解决方案2】:

这可能读起来像你爷爷的建议,但这里的所有答案都没有提到最好的方法:去安装ActivePython 而不是 python.org windows 二进制文件。我真的很想知道为什么在 Windows 上进行 Python 开发如此简单——直到我安装了 activestate python。我不隶属于他们。这只是简单的事实。把它写在每一面墙上:Windows 上的 Python 开发 = ActiveState! 然后你只需pypm install mysql-python,一切顺利。 没有编译狂欢。没有奇怪的错误。没有恐惧。五分钟后开始编码并开始实际工作。 这是在 Windows 上进行的唯一方法。真的。

【讨论】:

  • 如果不需要商业版订阅,这将是一个完美的解决方案......
  • @matheus.emm - 在 Windows 32 位上安装 MySQLdb 不需要商业版。
  • @matheus.emm - 为了免费访问,您可以在 Windows 7 64 位操作系统上安装 ActivePython 32-bit,然后安装 mysql-python。 ActivePython 64 位确实需要订阅 BE 才能安装包。
  • 这是一个很好的建议。如果您在生产中认真使用 Python,我认为商业版非常值得。如果它每月为您节省几个小时的工作时间,那么它就可以收回成本。所有这些令人头疼的配置问题让我想起了开源商业模式:“免费给他们软件,但安装和使用变得如此困难,他们需要购买手册和/或支持。”唯一的问题是这些项目中的许多项目都没有提供或销售支持,因为他们将开源视为一种意识形态,而不是它的本意,一种商业模式。大声笑
  • 刚刚使用 activepython 社区版安装它,它就像一个魅力。强烈推荐
【解决方案3】:

作为学习 Python 生态系统的 Python 新手,我刚刚完成了这个。

  1. 安装 setuptools instructions

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

  3. here 安装 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 = SOFTWARE\MySQL AB\MySQL Server 5.1

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

    python setup.py clean

    python setup.py 安装

    你应该准备好摇滚了!

  6. Here 是一个超级简单的脚本,可以开始为您学习 Python DB API - 如果您需要的话。

【讨论】:

    【解决方案4】:

    我找到了一个位置是一个人为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 模块已弃用 从集合导入 ImmutableSet

    【讨论】:

      【解决方案5】:

      pymysql 呢?它是纯 Python,我在 Windows 上使用它取得了相当大的成功,绕过了编译和安装 mysql-python 的困难。

      【讨论】:

        【解决方案6】:

        您不是唯一一个遇到 Python 2.6 和 MySQL (http://blog.contriving.net/2009/03/04/using-python-26-mysql-on-windows-is-nearly-impossible/) 问题的人。这是一个解释它应该如何在 Python 2.5 http://i.justrealized.com/2008/04/08/how-to-install-python-and-django-in-windows-vista/ 下运行 祝你好运

        【讨论】:

          【解决方案7】:

          http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python 上的预编译二进制文件对我有用。

          1. 使用 zip 打开 MySQL_python-1.2.5-cp27-none-win_amd64.whl 文件 提取程序。
          2. 将内容复制到 C:\Python27\Lib\site-packages\

          【讨论】:

            【解决方案8】:

            在 Python 3.4 上,我使用 pip install mysqlclient 从http://www.lfd.uci.edu/~gohlke/pythonlibs/ 安装了 mysqlclient,它正在工作。

            【讨论】:

              【解决方案9】:

              您可以尝试使用 myPySQL。它真的很容易使用; windows不需要编译,即使你需要编译它,你只需要安装Python和Visual C(不是mysql)。

              http://code.google.com/p/mypysql/

              祝你好运

              【讨论】:

                【解决方案10】:

                【讨论】:

                • 如果只安装 2.6,则无法安装 2.5(和 2.4)二进制文件
                • 那是因为版本必须匹配。在这篇博文中有一个适用于 Windows 的 MySQL-Python 2.6 的链接,但我没有尝试过:timvalenta.wordpress.com/2009/02/04/python-26-mysql
                【解决方案11】:

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

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

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

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

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

                【讨论】:

                  【解决方案12】:

                  如果您正在寻找 Python 3.2,这似乎是我迄今为止找到的最佳解决方案

                  来源:http://wiki.python.org/moin/MySQL

                  【讨论】:

                    【解决方案13】:

                    您可能还想考虑使用Cygwin,它在存储库中有mysql python 库。

                    【讨论】:

                      【解决方案14】:

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

                      【讨论】:

                        【解决方案15】:

                        赞成 itsadok 的回答,因为它也引导我安装了 python 2.7,它位于此处:http://www.codegood.com/archives/129

                        【讨论】:

                          【解决方案16】:

                          厌倦了 MySQLdb 的安装问题,改用pymysql

                          简单的设置;

                          git clone https://github.com/petehunt/PyMySQL.git
                          python setup.py install
                          

                          API 几乎相同。

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 2014-08-16
                            • 2016-03-20
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2012-05-14
                            • 2016-04-19
                            相关资源
                            最近更新 更多