从子文件夹导入Django模块

M3RS

我有一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章