我已经定义了一个使用psycopg2模块从db查询内容的模块。
当我将此模块导入我的代码时,由于某种原因,名称错误:NameError: global name 'psycopg2' is not defined
模块查询是:
import psycopg2
import pandas as pd
def queryRedshift(query):
conn_string = """db details"""
conn = psycopg2.connect(conn_string)
cursor = conn.cursor()
cursor.execute(query)
records = cursor.fetchall()
data = pd.DataFrame(records)
data.columns = [desc[0] for desc in cursor.description]
conn.rollback()
cursor.close()
return data
和实施:
import queryrs as qrs
import pandas as pd
import numpy as np
query = """Some query"""
df = qrs.queryRedshift(query)
答案 0 :(得分:0)
我知道这是一个很长的镜头,但是当我将psycopg2安装到Python3而不是Python2时,我遇到了同样的问题。反之亦然。您可能想检查模块的实际位置。
答案 1 :(得分:0)
如果您使用的是 anaconda 并拥有 Python 3.8 或更高版本,则以下代码有效:
conda install -c anaconda psycopg2