3

我正在尝试在一个文件中创建一组定义,这样我就可以在我想在 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)

谁能帮帮我?

4

1 回答 1

7

你只需要import psycopg2在你的第一个片段中。

如果您需要在第二个片段中“也”导入它没有问题(Python 确保模块只导入一次)。尝试使用globals它是不好的做法。

所以:在每个模块的顶部,import在该特定模块中使用的每个模块。

另外:请注意from x import *(使用通配符)通常不受欢迎:它会使您的命名空间变得混乱并使您的代码不那么明确。

于 2010-03-24T19:30:41.740 回答