我已经构建了一个简单的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
@夏:你可以请分享你如何解决它? –