使用MySQLdb模块和Pypy编译器

时间:2013-06-24 09:55:26

标签: python mysql-python pypy

我正在尝试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。

1 个答案:

答案 0 :(得分:13)

MySQLdb主要是用C编写的,pypy不能直接使用。你需要patch and recompile它。

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

pymysql甚至可以用作MySQLdb的dropin替代品,你需要做的就是添加:

import pymysql
pymysql.install_as_MySQLdb()

或将其放在模块MySQLdb.py中,之后导入MySQLdb的代码应正常工作。