我已經構建了一個簡單的Web應用程序,包含Flask和Python,我打算上傳到Heroku。「導入錯誤:無法導入名稱郵件」在Flask
本地時開始我的應用程序,用下面的腳本:
#!venv/bin/python
from app import app
app.run(debug = True)
我收到此錯誤信息:
Traceback (most recent call last):
File "./run.py", line 2, in <module>
from app import app, mail
File "/home/ricardo/personalSite/app/__init__.py", line 3, in <module>
from app import index
File "/home/ricardo/personalSite/app/index.py", line 6, in <module>
from emails import send_email
File "/home/ricardo/personalSite/app/emails.py", line 2, in <module>
from app import app, mail
ImportError: cannot import name mail
因此,它無法導入mail
。
裏面的app
目錄我有這個__init__.py
,這裏是我創建Mail
對象時ginving我麻煩進口:
from flask import Flask
app = Flask(__name__)
from app import index
from flask.ext.mail import Mail
mail = Mail(app)
這是文件emails.py
這裏我所說的send_mail
功能:
from flask.ext.mail import Message
from app import app, mail
from flask import render_template
from config import ADMINS
from decorators import async
所以,根據錯誤信息,錯誤在這個文件中,在from app import app, mail
。
什麼問題?爲什麼不能進口mail
?
更新:
這是我的目錄列表:
persSite\
venv\
<virtual environment files>
app\
static\
templates\
__init__.py
index.py
emails.py
decorators.oy
tmp\
run.py
謝謝你的精心解答Mark Hildreth。我明白你在說什麼,但我似乎還沒有正確地重新排列我的代碼。我會繼續努力。 – Xar
好的。我現在明白了。再一次,謝謝你。我從來沒有想過如何導入Python的工作。 – Xar
@夏:你可以請分享你如何解決它? –