Psycopg2:'module'对象没有属性'connect'

时间:2017-05-03 18:35:45

标签: python psycopg2

我正在尝试使用psycopg2连接到postgres数据库:

import psycopg2

try:
    conn = psycopg2.connect("dbname='puppetdb' user='puppetdb' host='172.17.0.1' port='5432' password='puppetdb'")
except Exception, e:
    print "I am unable to connect to the database"
    print e

返回:

I am unable to connect to the database
'module' object has no attribute 'connect'

我确保psycopg2与pip install psycopg2一起安装,看起来这应该符合documentation

我这样做错了吗?

3 个答案:

答案 0 :(得分:7)

对我而言,这是因为我正在将一个zip上传到AWS lambda并且不是递归地压缩该文件夹,即more /etc/hosts 127.0.0.1 localhost kafka 而不是zip lambda.zip *。所以模块文件夹是空的。

答案 1 :(得分:5)

这可能是影子名称问题。

如果您的文件名为psycopg2.py,或者您在该目录中有psycopg2.py/psycopg2.pyc文件,那么它将通过实际的pyscopg2模块导入您的脚本。

如果是这个问题,请将您的文件重命名为其他内容。

答案 2 :(得分:-1)

导入psycopg2#Acc sPostgreSQL import psycopg2.extras #Goodies PostgreSQL

尝试:      conn = psycopg2.connect(“dbname ='puppetdb'user ='puppetdb'host ='172.17.0.1'port ='5432'password ='puppetdb'”)

除了psycopg2.Error为e:     print(“我无法连接到数据库”)     打印(e)中