Python 名称错误:全局名称';已经存在的';在函数中使用try/except时未定义

Python 名称错误:全局名称';已经存在的';在函数中使用try/except时未定义,python,Python,我知道这些问题中有很多是存在的,但我似乎找不到一个适合我的问题 我有以下资料: def function(): try: # function to create a table on hbase except AlreadyExists, ae: print "WARN: " + ae.message 当我从另一个python脚本调用它时,它给了我 NameError: global name 'AlreadyExists' is not defined …但是

我知道这些问题中有很多是存在的,但我似乎找不到一个适合我的问题

我有以下资料:

def function():
  try:
    # function to create a table on hbase
  except AlreadyExists, ae:
    print "WARN: " + ae.message 
当我从另一个python脚本调用它时,它给了我

NameError: global name 'AlreadyExists' is not defined 
…但是如果我删除
def function()
并单独运行它,它就会工作,并且不会抱怨全局名称

我试着把
global-AlreadyExists
放进去,但没有成功。我也看了这个,但我不确定如何应用它,因为它是独立工作的(我不必导入任何特定的内容,但一旦我将它包装到函数中,它就会失败)


有什么建议吗?

Python仅在引发异常时尝试访问该名称。当您在函数外部运行代码时,它可能没有抛出异常,这就是您认为它有效的原因

您需要从AlreadyExists异常所在的位置导入它

变化

from hbase import ttypes   

...

except AlreadyExists, ae:


您导入了AlreadyExists吗?哦,好吧..很有意义..我以为应用程序抛出了错误代码,我正在捕获名称(有点像打印错误名称)…没有意识到我必须导入我想要捕获的错误。非常感谢。
except ttypes.AlreadyExists, ae: