psychopg用“with”语句打开游标会抛出异常

时间:2016-03-16 03:47:19

标签: python python-2.7

好。此错误仅发生在我的AWS服务器(ubuntu)上,并在我的本地BunsenLabs上运行。

这是类构造函数和我得到错误的行:

def __init__(self, conn):
    self.conn = conn

...

def dropdb(self):
  with self.conn.cursor() as cur:
    print "cur open"
    #some cur.execute here that never gets executed

如果我打印异常,则只显示'__exit__'。尝试搜索但我得到了一个完全不同的问题。

我尝试手动打开游标并且工作正常:

def __init__(self, conn):
    self.conn = conn
    cur = self.conn.cursor()
    cur.execute("create table bleh(a integer);")
    cur.close()
    print "done"

但它仍然因为声明而死亡。怎么了?

谢谢。

1 个答案:

答案 0 :(得分:0)

修正了它。通过apt $apt-get remove python-psychopg2删除软件包,安装pip,然后再次安装为$pip install psychopg2,然后显示问题:

Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.

所以我跑了

$sudo apt-get install postgresql-server-dev-9.3
$pip install psychopg2

它有效。