我有一个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
,但不能导入其他功能,这很奇怪。
答案 0 :(得分:2)
查看你的追溯我看到你有一个名为email
的模块。
Django尝试从内置模块email
导入,而python解释器认为你的模块是要导入的模块。尝试重命名该模块以避免名称冲突,你应该没问题
编辑:编辑后问题变得非常清楚。 python解释器在内置命令之前查看你的工作目录,找到email.py
并尝试从那里导入
答案 1 :(得分:1)
你的项目中有一个名为django的包,不是吗:)不要这样做 - 它会让你意外导入错误的东西。