2013-09-06 3 views
-1

Я пытаюсь использовать потоки в предстоящем проекте, но я не могу заставить его работать. Я попытался запустить 2-й пример на http://www.tutorialspoint.com/python/python_multithreading.htm, который я представляю работает код, но я получаю ошибку ...import threading not working python 2.7

Traceback (most recent call last): 
    File "C:/Python27/threads/threading.py", line 3, in <module> 
    import threading2 
    File "C:\Python27\lib\site-packages\threading2\__init__.py", line 49, in <module> 
    from threading import _active,_DummyThread 
    File "C:\Python27\threads\threading.py", line 8, in <module> 
    class myThread (threading2.Thread): 
AttributeError: 'module' object has no attribute 'Thread' 

Что происходит? Кажется, что нет модуля с именем threading. Я везде искал его. Кто-нибудь знает, где я могу найти этот модуль и как его установить?

+2

В качестве побочного примечания я не уверен, что учебник, относящийся к Python 2.4, как «новый», является лучшим местом для начала ... – abarnert

+1

Вы разместили свой собственный код внутри 'C: \ Python27'? Это не очень хорошая идея. – abarnert

+0

'threading2'? Никогда не слышал об этом раньше. – user2357112

ответ

6

Вы назвали свой собственный файл threading, и теперь вы импортируете свой собственный скрипт, и это не то, что вы хотите. Не используйте имена существующих пакетов/модулей для собственных скриптов.

Когда код в threading2.py пытается выполнить import threading, Python сначала ищет уже импортированный модуль с этим именем. Если это не удается, он просматривает каждое местоположение в sys.path для файла с именем threading.py, который он может загрузить. Обычно он найдет одно в стандартной библиотеке. Но если у вас есть файл с именем threading.py в том же месте, что и скрипт, или если это имя самого скрипта, Python найдет его первым и загрузит его.

Кроме того, не сохраняйте свои собственные скрипты в папке, где установлен Python.

+0

Это, вероятно, правильный ответ, но вам нужно его объяснить ... – abarnert

+0

О, я пропустил круговой импорт. Спасибо за дополнительную информацию. – Matthias

+0

Да, спасибо, я, вероятно, должен был подобрать этот хороший ответ – ZJS