5

这是我第一次学习 python,我继续尝试从这篇博客文章中进行线程化。问题是它似乎已经过时了:

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__文件夹。

4

3 回答 3

14

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

你也必须删除它。

类似的问题在这里

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

于 2012-08-21T09:30:41.097 回答
9

您已命名您的文件,该文件threading.py以相同的名称隐藏标准库模块。..不要那样做:-)

于 2012-08-21T09:27:24.717 回答
0

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

于 2012-08-21T09:31:44.977 回答