[英]Importing Django module from a subfolder
我有一個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
並嘗試從中導入
你的項目中有一個名為django的包,不是嗎:)不要這樣做 - 它會讓你意外導入錯誤的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.