Невозможно импортировать почтовый модуль Python вообще - PullRequest
42 голосов
/ 28 июля 2011

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

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

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
>>>

РЕДАКТИРОВАТЬ: я пробовал оба Python из python.org и ActivePython, думая, что ActivePython может работать. Есть ли способ полностью удалить python и все его данные и начать на 100% заново, может быть?

Ответы [ 5 ]

105 голосов
/ 28 июля 2011

Похоже, у вас есть файл с именем 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 здесь .

34 голосов
/ 27 сентября 2012

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

5 голосов
/ 23 марта 2014

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

3 голосов
/ 22 июля 2017

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

0 голосов
/ 15 ноября 2015
npm install email

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...