我如何解决NameError:在Python 3.3中没有定义名称'threading'

时间:2014-04-03 20:44:07

标签: python python-3.x

我有以下程序,没有别的,python 3.3。当我运行它。我得到了

NameError: name 'threading' is not defined

我用谷歌搜索,但没有给出的答案解释我的情况。任何线索?谢谢!

#!/usr/bin/python

import Utilities
import os
import sys
import getopt
import time
from queue import Queue
from threading import Thread

_db_lock=threading.Lock()

我也试过

_db_lock=threading.Lock

1 个答案:

答案 0 :(得分:17)

您必须导入线程。将以下内容添加到文件的开头:

import threading

错误源自以下行:

_db_lock=threading.Lock()

那是因为您使用了from threading import Thread,但您从未真正将threading引入本地命名空间。到目前为止只有Thread(尽管从技术上讲,导入就在那里,但它不在命名空间中,你不能使用它。)

如果出于某种原因,您希望threading保持“污染”状态。您的命名空间,导入Lock的方式与导入Thread的方式相同,如下所示:

from threading import Thread, Lock
_db_lock = Lock()