Не удалось импортировать модуль электронной почты 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% свежий, возможно?
Ответы
Ответ 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
исправить мою проблему, попробуйте.