Подтвердить что ты не робот

Не удалось импортировать модуль электронной почты Python вообще

Я вообще не могу импортировать модуль электронной почты. Каждый раз, когда я это делаю, я получаю сообщение об ошибке. Я попытался удалить Python и переустановить, но модуль электронной почты просто отказывается работать. Я даже сделал "pip install email", и он все еще сломан. Я нахожусь в Windows 7 Home Premium x64, запустив x86-версию Python.

Вот что происходит:

c:\Users\Nicholas\Desktop>python
ActivePython 2.7.2.5 (ActiveState Software Inc.) based on
Python 2.7.2 (default, Jun 24 2011, 12:21:10) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import email
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "email.py", line 1, in <module>
    import smtplib
  File "C:\Python27\lib\smtplib.py", line 46, in <module>
    import email.utils
ImportError: No module named utils
>>>

EDIT: Я пробовал оба Python из python.org и ActivePython, думая, что ActivePython может работать. Есть ли вообще, чтобы полностью удалить python и все его данные и начать на 100% свежий, возможно?

4b9b3361

Ответ 1

Похоже, у вас есть файл с именем email.py. Не используйте имена файлов, которые имеют то же имя, что и стандартные библиотечные модули Python. Как правило, ваш рабочий каталог предшествует пути поиска Python для импорта модулей, поэтому файлы в вашем рабочем каталоге будут переопределять модули с тем же именем в стандартной библиотеке.

Ключ: обратите внимание на имена путей в трассировке

  File "email.py", line 1, in <module>
    import smtplib
  File "C:\Python27\lib\smtplib.py", line 46, in <module>
    import email.utils

Кстати, это очень распространенная ошибка. Отличный учебник в стандартной документации для Python рассказывает об этом здесь.

Ответ 2

Я только что наткнулся на эту ошибку и хотел поделиться своим решением. В моем случае у меня был файл с именем email.py в каталоге. Это создало конфликт имен между Python email.py и моим файлом. Когда smtplib попытался import email.utils, он посмотрел и мой файл и ничего не нашел. После того, как я переименовал свою копию email.py в myemail.py, все работало как шарм.

Ответ 3

Я также столкнулся с этой ошибкой. Помимо переименования email.py на что-то еще, вы также должны удалить файл email.pyc(обратите внимание на C). После этого все хорошо. Спасибо всем!

Ответ 4

Я также выбрал эту проблему, потому что у меня был файл с именем email.py в моей директории проектов. Я не смог импортировать urllib.request. Когда я изменил имя файла email.py на emailtest.py, ошибка исчезла. В каждый раз мы не должны использовать имя, то же самое, что и имя файла ядра python.

Ответ 5

npm install email

исправить мою проблему, попробуйте.