0

各位朋友。

我已经从网站http://www.stickpeople.com/projects/python/win-psycopg/中找到的包 psycopg2-2.5.1.win32-py2.6-pg9.2.4-release.exe 安装了 psycopg2 。我可以导入它并连接到数据库,但是当我在命令行(标准和 Cygwin)上运行我的脚本时,我会收到打印到 stderr 的不需要的消息。

例如:

conn = psycopg2.connect(host="42.42.42.42", port=5432, database="myDB", user="myUser", password="********")
if conn is None:
    sys.exit("Connection failed")
print "Connection successful"

打印以下内容:

DEBUG:  CommitTransaction
DEBUG:  name: unnamed; blockState:       STARTED; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
Connection successful

我一直无法关闭这些消息。我在 Google 中搜索但找不到任何相关内容,我还尝试更改标准日志记录模块的配置,以防其中一些正在使用,但仍然无济于事。

有人知道如何防止此消息吗?

提前致谢!

4

2 回答 2

1

看起来这个版本是用标志集制作的,在查看http://www.stickpeople.com/projects/python/win-psycopg/PSYCOPG_DEBUG上的表格后发布版本不应该是这种情况(注意最后一列) . 但是,您似乎设置了环境变量。如果是这种情况,那么取消设置应该会阻止发出这些调试消息。Debug Build (--define PSYCOPG_DEBUG)PSYCOPG_DEBUG

来自 psycopg2.txt

创建调试版本

如果出现问题,可以将 Psycopg 配置为发出详细的调试消息,这对于诊断和报告错误非常有用。为了创建调试包:

  • 下载并解压 Psycopg 源包。

  • 编辑“setup.cfg”文件,将“PSYCOPG_DEBUG”标志添加到“define”选项。

  • 编译并安装包。

  • 设置“PSYCOPG_DEBUG”变量:

    $ 出口 PSYCOPG_DEBUG=1

  • 运行您的程序(确保导入的“psycopg2”包是您刚刚编译的包,而不是系统包):您将
    在标准输出上打印出大量信息流。

于 2013-08-01T10:46:44.310 回答
0

这些消息来自 Postgres 本身。第二个是模块中的 DEBUG3 消息backend/access/transam/xact.c。我会查看您的postgresql.conf.

于 2013-08-06T13:15:56.723 回答