我正在尝试在一个文件中创建一组defs,这样我就可以在我想在python中创建脚本时导入它们
我试过这个:
def get_dblink( dbstring):
"""
Return a database cnx.
"""
global psycopg2
try
cnx = psycopg2.connect( dbstring)
except Exception, e:
print "Unable to connect to DB. Error [%s]" % ( e,)
exit( )
但我收到此错误:未定义全局名称“psycopg2”
在我的主文件script.py
中 我有:import psycopg2, psycopg2.extras
from misc_defs import *
hostname = '192.168.10.36'
database = 'test'
username = 'test'
password = 'test'
dbstring = "host='%s' dbname='%s' user='%s' password='%s'" % ( hostname, database, username, password)
cnx = get_dblink( dbstring)
任何人都可以帮我一把吗?
答案 0 :(得分:5)
您只需要在第一个代码段中import psycopg2
。
如果您需要“也”将其导入第二个片段(Python确保模块仅导入一次)没有问题。尝试使用globals
这是不好的做法。
所以:在每个模块的顶部,import
在该特定模块中使用的每个模块。
另外:请注意from x import *
(带通配符)通常不赞成:它会破坏您的命名空间并使您的代码不那么明确。