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

Chr*_*s F 8 python python-3.x

我有以下程序,没有别的,python 3.3.当我运行它.我明白了

NameError: name 'threading' is not defined
Run Code Online (Sandbox Code Playgroud)

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

#!/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()
Run Code Online (Sandbox Code Playgroud)

我也试过了

_db_lock=threading.Lock
Run Code Online (Sandbox Code Playgroud)

msv*_*kon 18

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

import threading
Run Code Online (Sandbox Code Playgroud)

错误源自该行:

_db_lock=threading.Lock()
Run Code Online (Sandbox Code Playgroud)

那是因为你已经使用过了from threading import Thread,但是你从未实际引入threading过本地命名空间.到目前为止只有Thread(尽管技术上导入是存在的,它只是不在命名空间中,你不能使用它).

如果出于某种原因,您希望threading避免"污染"您的命名空间,请Lock以与导入时相同的方式导入Thread,如下所示:

from threading import Thread, Lock
_db_lock = Lock()
Run Code Online (Sandbox Code Playgroud)