python - "Import Error: dynamic module does not define init function (init_mysql)"在 OS X 上导入 MySQLdb

标签 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)

如何解决这个问题?

最佳答案

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

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

sudo port install py27-mysql

关于python - "Import Error: dynamic module does not define init function (init_mysql)"在 OS X 上导入 MySQLdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13227818/

相关文章:

Python,通过索引将一些列表匹配到列表列表中

python - 如何更改 matplotlib - spyder 中的默认绘图颜色?

python - 导入cv2失败-为Windows安装适用于Python 2.7的OpenCV

python - 如何从socket.timeout错误中恢复是selenium(python)

python - wtforms 自定义验证器可以使字段可选吗?

python - 将两个数据框与其中一列内的列表合并

python - 将字符串转换为列表列表

python - 尝试在 MAC 上使用 pip 时权限被拒绝?

python - 如何将两个列表合并到一个数组中,这样我就不必对其进行硬编码

python - 获取 sympy 解决方案的某些部分