我已经为基本的Postgres操作创建了一些助手函数,比如创建连接、创建游标、创建表、创建列等等。我将函数保存在一个单独的.py文件中,并添加到path中。我可以导入文件并在调用dir()
时看到它们,但是当我尝试调用依赖于psycopg2.cursor()
对象的函数时,它会返回一个名称错误。你知道吗
我试着把它变成一个类来访问对象,但没有成功。 我还尝试在我的_心理医生还有文件。你知道吗
#This is from the helper function file
import psycopg2
def connect_and_make_cursor(host, dbname, user, pw):
try:
conn = psycopg2.connect(f"host={host}, dbname={dbname} user = {user} password = {pw}")
conn.set_session(autocommit = True)
cur = conn.cursor()
except psycopg2.Error as e:
print(e)
return cur
#this is from the file in which I am attempted to import the functions
import my_psycop
from password import password
#psycopg2 = my_psycop.psycopg2
dir(my_psycop)
['__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'close_connection',
'connect_and_make_cursor',
'create_database',
'create_table',
'insert_columns',
'insert_rows',
'psycopg2']
cur = my_psycop.connect_and_make_cursor("127.0.0.1", 'postgres', 'postgres', password )
my_psycop.create_database('new_db')
以下是错误回溯:
NameError Traceback (most recent call last)
<ipython-input-11-5eb39fff83a2> in <module>()
----> 1 my_psycop.create_database('new_db')
c:\python36\lib\site-packages\my_psycop.py in create_database(db_name)
12 def create_database(db_name):
13 try:
---> 14 cur.execute(f"CREATE DATABASE {db_name}")
15 except psycopg2.Error as e:
16 print(e)
NameError: name 'cur' is not defined
我从来没有以这样一种依赖于单独库的方式使用自定义函数,我知道这是某种范围界定问题,但我就是搞不懂。如果以后我创建的每个文件中都不必包含这些函数,那就太好了。提前谢谢!你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐