首先,我要说我是Python的新手,如果这不是解决此问题的适当地点,我深表歉意。
我正在使用psycopg2模块来处理PostgreSQL数据库。一般用法如下所示:
# Example 1
import psycopg2
conn = psycopg2.connect(database="mydb", user="postgres")
cur = conn.cursor()
cur.execute ("SELECT * FROM mytable;")
rows = cur.fetchall()
for i, row in enumerate(rows):
print "Row", i, "value = ", row
cur.close()
conn.close()
Run Code Online (Sandbox Code Playgroud)
这将打开与mydb数据库的连接,从表mytable中选择所有字段并打印它们,然后关闭连接。
我想做的就是将其中一些功能分解为一个模块,因为我需要在许多脚本中一遍又一遍地调用它们。对于此示例,理想情况下,我将有一个名为core的模块,其中包含三个功能:
我尝试过如下创建模块:
# Module core.py
import psycopg2
def db_init():
conn = psycopg2.connect(database="mydb", user="postgres")
cur = conn.cursor()
def db_query(query):
cur.execute(query)
def db_close():
cur.close()
conn.close()
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用此模块重新创建示例1时,出现命名空间错误:
# Example 2
import core
core.db_init()
core.db_query("SELECT * …Run Code Online (Sandbox Code Playgroud)