首页 > 解决方案 > psycopg2:模块“psycopg2”没有属性“连接”

问题描述

我正在尝试使用 psycopg2 在 Python 中连接到 PostgreSQL,并且我将连接参数传递给psycopg2.connect()函数,如下所示:

session = psycopg2.connect(
    host="hostvalue", database="db_value", user="username", password="password"
)

但这会引发以下错误:

module 'psycopg2' has no attribute 'connect'

我已经在我的 mac 上安装了 psycopg2-binary,当我再次尝试使用 pip 安装它时很明显:

$ pip3 install psycopg2-binary
Requirement already satisfied: psycopg2-binary in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (2.8.4)

我真的不知道为什么我会看到这个错误。有人可以帮我吗?

标签: pythonpostgresql

解决方案


您可以尝试调用dir模块并打印输出,如下所示:

import psycopg2, pprint
pprint.pprint(dir(psycopg2))
['BINARY',
 'Binary',
 'DATETIME',
 'DataError',
 'DatabaseError',
 'Date',
 'DateFromTicks',
 'Error',
 'IntegrityError',
 'InterfaceError',
 'InternalError',
 'NUMBER',
 'NotSupportedError',
 'OperationalError',
 'ProgrammingError',
 'ROWID',
 'STRING',
 'Time',
 'TimeFromTicks',
 'Timestamp',
 'TimestampFromTicks',
 'Warning',
 '__builtins__',
 '__cached__',
 '__doc__',
 '__file__',
 '__libpq_version__',
 '__loader__',
 '__name__',
 '__package__',
 '__path__',
 '__spec__',
 '__version__',
 '__warningregistry__',
 '_connect',
 '_ext',
 '_json',
 '_psycopg',
 '_range',
 'apilevel',
 'connect',
 'extensions',
 'paramstyle',
 'threadsafety',
 'tz',
 'warn']

'connect'如上所示,您应该会在列表中看到该方法。


推荐阅读