ImportError:无法导入名称Thread

时间:2012-08-21 09:26:19

标签: python windows python-3.x

这是我第一次学习python,我继续尝试从this blog post进行线程化。问题是它似乎已经过时了:

import time
from threading import Thread

def myfunc(i):
    print ("sleeping 5 sec from thread %d" % i)
    time.sleep(5)
    print ("finished sleeping from thread %d" % i)

for i in range(10):
    t = Thread(target=myfunc, args=(i,))
    t.start()

如何在不出现此错误的情况下运行此代码:

$ python helloworld.py
Traceback (most recent call last):
  File "helloworld.py", line 1, in <module>
    import threading
  File "c:\Documents and Settings\Hermione\learningPython\threading.py", line 2, in <module>
    from threading import Thread
ImportError: cannot import name Thread

我有threading.py因为我已经删除了该文件(并且它一直出现!!)和一个神秘的__PyCache__文件夹,这也很奇怪。

3 个答案:

答案 0 :(得分:12)

你的问题是你曾经一个名为threading.py的文件,它可能留下了一个名为threading.pyc的字节码文件。

你也必须删除它。

类似问题here

编辑:意识到您正在使用python3,同时删除__pycache__目录(这是文件使用python3.2及更高版本所在的位置)。

答案 1 :(得分:5)

您已将文件threading.py命名为隐藏标准库模块的同名文件。 ..不要这样做: - )

答案 2 :(得分:0)

您需要删除threading.pyc以及threading.py文件,或者如果您使用的是Python 3.2,则需要删除__pycache__目录。