在 OS X 上导入 MySQLdb 时出现“导入错误:动态模块未定义 init 函数 (init_mysql)”

use*_*469 2 python python-2.7

我在 mac os x 上安装了 python 的 mysqldb,但它给了我以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build/bdist.macosx-10.6-intel/egg/MySQLdb/__init__.py", line 19, in <module>
  File "build/bdist.macosx-10.6-intel/egg/_mysql.py", line 7, in <module>
  File "build/bdist.macosx-10.6-intel/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dynamic module does not define init function (init_mysql)
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Ned*_*ily 5

这很可能是由于您正在使用的 Python、您安装的 MySQLdb 适配器以及您已安装的 MySQL 客户端库之间的体系结构不匹配。它们都需要至少有一种通用架构并在该架构中执行。您可能有一个仅 32 位的 Python 和一个仅 64 位的 MySQL 客户端库,反之亦然。确保它们匹配。

除非您需要正在使用的 Python,否则我强烈建议您从第三方包管理器安装完整的解决方案。例如,如果您安装 MacPorts 基础版,则可以使用一个命令安装所需的所有内容(Python 2.7、MySQLdb、MySQL 客户端库和所有依赖项):

sudo port install py27-mysql
Run Code Online (Sandbox Code Playgroud)