簡體   English   中英

從子文件夾導入Django模塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM