6

我正在尝试 Pypy 编译器,看看我是否可以加快我的代码速度。尽管如此,我在 MySQLdb 模块上遇到了麻烦,Pypy 无法找到该模块。

我已经读到 MySQLdb 1.2.4 应该可以与 Pypy 一起正常工作,所以我升级了模块,并使用 CPython 编译器测试了它是正确的版本:

import MySQLdb
MySQLdb.__version__
>> '1.2.4'

但是当使用 Pypy 时,我得到:

Python 2.7.2 (1.9+dfsg-1, Jun 19 2012, 23:23:45)
[PyPy 1.9.0 with GCC 4.7.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
And now for something completely different: ``-FIRST they ignore you, then they
laugh at you, then they fight you, then you win.-''
>>>> import MySQLdb
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named MySQLdb

有什么帮助吗?我在 Ubuntu 13.04 上运行并使用进入 Canonical 存储库的 Pypy。

4

1 回答 1

13

MySQLdb主要是用 C 语言编写的,pypy 不能直接使用。您需要修补并重新编译它。

更简单的解决方案是使用纯 python mysql 连接器库,如pymysqlmysql-connector-python

pymysql 甚至可以用作 MySQLdb 的 dropin 替代品,您只需添加:

import pymysql
pymysql.install_as_MySQLdb()

或者把它放在一个模块MySQLdb.py中,之后导入的代码MySQLdb应该可以正常工作。

于 2013-06-24T13:36:49.233 回答