私はEclipseで(PyDevを使用して)次を実行しようとしていますが、エラーが発生し続けます:
q = queue.Queue(maxsize = 0)NameError:グローバル名「キュー」が定義されていません
私はドキュメントをチェックし、それがどのように配置されるべきであるように見えます。ここに何かが足りませんか?それはPyDevの仕組みですか?またはコードに何かが欠けていますか?すべての助けてくれてありがとう。
from queue import *
def worker():
while True:
item = q.get()
do_work(item)
q.task_done()
def main():
q = queue.Queue(maxsize=0)
for i in range(num_worker_threads):
t = Thread(target=worker)
t.daemon = True
t.start()
for item in source():
q.put(item)
q.join() # block until all tasks are done
main()
使用:Eclipse SDK
バージョン:3.8.1ビルドID:M20120914-1540
およびPython 3.3
あなたがやる
from queue import *
これにより、queue
モジュールからすべてのクラスが既にインポートされます。その行を
q = Queue(maxsize=0)
あなたが使用しているためです:from queue import *
そして、あなたは使用しようとしています:
queue.Queue(maxsize=0)
from queue import *
はすべての属性を現在のネームスペースにインポートするため、queue
部分を削除します。 :
Queue(maxsize=0)
またはimport queue
の代わりにfrom queue import *
を使用します。
_from queue import *
_をインポートする場合、これはコードをインポートするすべてのクラスと関数を完全に意味します。したがって、モジュールの名前を記述してはならず、q = Queue(maxsize=100)
だけを記述してください。ただし、モジュールの名前がq = queue.Queue(maxsize=100)
のクラスを使用する場合は、別のインポート文字列を書き込む必要があります:_import queue
_ 。