我有一个Django项目,可以在项目的根文件夹(在哪里manage.py
)中进行
(venv) MyName-MacBook:mydjangoproject myname$ python
>>> import django
>>> from django.core.mail import EmailMessage, send_mail
>>>
但是,当我创建一个子文件夹时,它将不再起作用
(venv) MyName-MacBook:mydjangoproject myname$ mkdir email && cd email
(venv) MyName-MacBook:email myname$ python
>>> import django
>>> from django.core.mail import EmailMessage, send_mail
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/myname/Documents/MacBook:mydjangoproject/venv/lib/python3.6/site-packages/django/core/mail/__init__.py", line 11, in <module>
from django.core.mail.message import (
File "/Users/myname/Documents/MacBook:mydjangoproject/venv/lib/python3.6/site-packages/django/core/mail/message.py", line 7, in <module>
from email import (
File "/Users/myname/Documents/MacBook:mydjangoproject/email/email.py", line 2, in <module>
from django.core.mail import EmailMessage, send_mail
ImportError: cannot import name 'EmailMessage'
>>>
我意识到这是一个非常基本的问题,但是我有些困惑。我可以导入django
,但其他功能不能导入,这很奇怪。
查看您的回溯,我看到您有一个名为的模块email
。
Django尝试从内置模块导入,email
而python解释器认为您的模块就是要导入的模块。尝试重命名该模块以避免名称冲突,您应该会很好
编辑:编辑后,问题变得非常明显。python解释器在内置函数之前先查看您的工作目录,然后找到一个email.py
并尝试从该目录导入
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句