私のサーバーコードには、への呼び出しがあり_SO_fetchAlternateID
(いくつかの呼び出しにネストされていvalue
ます)、最終的にはを呼び出しmakeConnection
ますpgconnection.py
。
この呼び出しはで失敗しconn.autocommit(1)
、エラーが発生します
TypeError:'bool'オブジェクトは呼び出せません
SQLObject(0.8.7)のコードは次のとおりです。
def makeConnection(self):
try:
if self.use_dsn:
conn = self.module.connect(self.dsn)
else:
conn = self.module.connect(**self.dsn_dict)
except self.module.OperationalError, e:
raise self.module.OperationalError("%s; used connection string %r" % (e, self.dsn))
if self.autoCommit:
# psycopg2 does not have an autocommit method.
if hasattr(conn, 'autocommit'):
conn.autocommit(1)
return conn
デバッグは、connが実際に接続オブジェクトを保持していることを示していますが、autocommitはメソッドではなく、ブール値(False)です。
self.module
モジュール'psycopg2'(2.4.2)です。
これは構成の問題ですか?バージョンが一致していませんか?
アップデート:
原因は、psycopg2-2.4.2の非互換性の問題であることが判明しました。Cのソースコードを見ると、psycopg/connection.hには残念ながら。という名前の整数変数がありますautocommit
。バージョン2-2.4は問題なく動作します。