Python 从子文件夹导入Django模块
我有一个Django项目,在该项目的根文件夹中(其中Python 从子文件夹导入Django模块,python,django,Python,Django,我有一个Django项目,在该项目的根文件夹中(其中manage.pyis)我可以执行 但是,当我创建一个子文件夹时,这就不再起作用了 (venv) MyName-MacBook:mydjangoproject myname$ mkdir email && cd email (venv) MyName-MacBook:email myname$ python >>> import django >>> from django.core.mail
manage.py
is)我可以执行
但是,当我创建一个子文件夹时,这就不再起作用了
(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'
>>>
(venv)MyName MacBook:mydjangoproject MyName$mkdir电子邮件和cd电子邮件
(venv)MyName MacBook:电子邮件MyName$python
>>>进口django
>>>从django.core.mail导入EmailMessage,发送\u邮件
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Users/myname/Documents/MacBook:mydjangoproject/venv/lib/python3.6/site packages/django/core/mail/_______.py”,第11行
从django.core.mail.message导入(
文件“/Users/myname/Documents/MacBook:mydjangoproject/venv/lib/python3.6/site packages/django/core/mail/message.py”,第7行,在
从电子邮件导入(
文件“/Users/myname/Documents/MacBook:mydjangoproject/email/email.py”,第2行,在
从django.core.mail导入EmailMessage,发送\u邮件
ImportError:无法导入名称“EmailMessage”
>>>
我意识到这是一个非常基本的问题,但我有点卡住了。奇怪的是,我可以导入
django
,但不能导入其他函数。您的项目中有一个名为django的包,不是吗:)不要这样做-这会使您意外导入错误的内容。查看您的回溯,我发现您有一个名为电子邮件的模块
Django尝试从内置模块电子邮件导入,python解释器认为您的模块就是要导入的模块。尝试重命名该模块以避免名称冲突,您应该可以
编辑:编辑后,问题变得非常清楚。python解释器在内置模块之前查看您的工作目录,找到一个email.py
,并尝试从该目录导入您可以包含来自异常的完整回溯吗?我无法详细说明为什么要导入模块而不是内置模块没有更多的上下文
(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'
>>>