Python 3.2 中adodbapi的问题

一直在使用Python 2.X,最近想测试一下最新的Python 3.2.下载了ActivePython 3.2,PyQt4,Eric5,安装配置完环境.

因为原系统中使用adodbapi连接MSSQL 数据库,所以首先测试一下adodbapi.在ActivePython 3.2中,默认安装了adodbapi的2.4版本,我就直接测试了一下连接数据库.

没想到简单地连接操作就报告错误,一看,是adodbapi.py中的错误,在其中有这样声明的异常处理:

raise er,'No such key as "%s" in %s'%(repr(key),self.__repr__()),tr

就这这里报告错误.然后查看了一下Python 3.2的说明:

raise
Converts raise E, V to raise E(V), and raise E, V, T to raise E(V).with_traceback(T). If E is a tuple, the translation will be incorrect because substituting tuples for exceptions has been removed in 3.0.

原来异常的报告方式发生了变化,就像Print一样.

直接修改为:

raise (er,'No such key as "%s" in %s'%(repr(key),self.__repr__()),tr)

然后调试通过 .

奇怪的是ActivePython 3.2的发行版中怎么还有这个错误?我直接登录adodbapi的网站:

http://sourceforge.net/projects/adodbapi

查看了一下最新版本,这个错误也没有修复.

,难道是我错了?不太清楚.

Python 3.X相对2.X改动比较大,兼容性不好,如果在3.X下直接编译2.X下的代码,会出现很可观的错误提示,好像官方有2to3工具,没有使用,不知道效果如何.

原文地址:https://www.cnblogs.com/GarfieldTom/p/1986688.html