Python 将物品正确导入烧瓶?Flask无法导入名称邮件
我是flask的新手,开始创建这个小应用程序,我想发送电子邮件,但是当flask导入init文件的配置时,我收到错误“ImportError:无法导入名称邮件”。 我已经读到它与我的应用程序的结构有关,但我不能适应它,所以没有问题。谢谢你的帮助 这是我的应用程序的结构:Python 将物品正确导入烧瓶?Flask无法导入名称邮件,python,python-3.x,flask,flask-restful,Python,Python 3.x,Flask,Flask Restful,我是flask的新手,开始创建这个小应用程序,我想发送电子邮件,但是当flask导入init文件的配置时,我收到错误“ImportError:无法导入名称邮件”。 我已经读到它与我的应用程序的结构有关,但我不能适应它,所以没有问题。谢谢你的帮助 这是我的应用程序的结构: └── my-project ├── app │ ├── __init__.py │ ├── constants │ │ ├── __init__.py │ │ ├
└── my-project
├── app
│ ├── __init__.py
│ ├── constants
│ │ ├── __init__.py
│ │ ├── constants.py
│ │
│ ├── models
│ │ └── __init__.py
│ │ ├── conectionDB.py
│ │ ├── Erros.py
│ │ ├── Session.py
│ │ ├── Users.py
│ │
│ ├── resources
│ │ ├── __init__.py
│ │ └── Mail.py
│ │ └── Session.py
│ ├── utils
│ │ ├── __init__.py
│ │ └── api_v1.py
│
├── database
│ ├── init.sql
│
├── config
│ ├── __init__.py
│ ├── default.py
│
└── api.py
api.py
import os
from app import app
if __name__ == '__main__':
app.run(host=os.environ["API_IP"], port=5000, debug=os.environ["API_DEBUG"])
from app import mail # you can now import the Mail() object
from flask_mail import Message
class EmailSend:
def send_email(subject, sender, recipients, text_body):
msg = Message(subject=subject, sender=sender, recipients=recipients)
msg.body = text_body
#msg.html = html_body
mail.send(msg)
应用程序/\uuu初始化\uuuuuu.py
from flask import Flask
from flask_mail import Mail
from app.apiL import blueprint as apiL
# logging.config.fileConfig('config/development-logging.conf')
app = Flask(__name__)
app.config.from_object('config.default')
# app.config.from_pyfile('config.py')
app.register_blueprint(api_v1)
mail = Mail(app)
resources/Mail.py
import os
from app import app
if __name__ == '__main__':
app.run(host=os.environ["API_IP"], port=5000, debug=os.environ["API_DEBUG"])
from app import mail # you can now import the Mail() object
from flask_mail import Message
class EmailSend:
def send_email(subject, sender, recipients, text_body):
msg = Message(subject=subject, sender=sender, recipients=recipients)
msg.body = text_body
#msg.html = html_body
mail.send(msg)
执行时出现以下消息:
| Traceback (most recent call last):
api_1 | File "api.py", line 2, in <module>
api_1 | from app import app
api_1 | File "/usr/src/api/app/__init__.py", line 5, in <module>
api_1 | from app.api_v1 import blueprint as api_v1
api_1 | File "/usr/src/api/app/api_v1.py", line 4, in <module>
api_1 | from app.resources.Session import nsLogIn, nsSignUP, nsVerifyEmail
api_1 | File "/usr/src/api/app/resources/Session.py", line 19, in <module>
api_1 | from app.resources.Mail import EmailSend
api_1 | File "/usr/src/api/app/resources/Mail.py", line 1, in <module>
api_1 | from app import mail # you can now import the Mail() object
api_1 | ImportError: cannot import name 'mail'
|回溯(最近一次呼叫最后一次):
api|1|文件“api.py”,第2行,在
api|1 |来自应用程序导入应用程序
api|1 |文件“/usr/src/api/app/_init__.py”,第5行,在
api|从app.api|v1导入蓝图作为api|v1
api|1 |文件“/usr/src/api/app/api|v1.py”,第4行,在
api_1|来自app.resources.Session导入nsLogIn、nsSignUP、nsVerifyEmail
api|1 |文件“/usr/src/api/app/resources/Session.py”,第19行,在
api_1|来自app.resources.Mail导入EmailSend
api|1 |文件“/usr/src/api/app/resources/Mail.py”,第1行,在
api_1 |从应用程序导入邮件#现在可以导入邮件()对象
api|1 |导入错误:无法导入名称“邮件”
谢谢您的帮助。您可能有循环依赖问题。在resources/Mail.py文件中,尝试在send_email函数中导入邮件模块 您的resources/Mail.py文件将类似于以下内容:
from flask_mail import Message
class EmailSend:
def send_email(subject, sender, recipients, text_body):
from app import mail # you can now import the Mail() object
msg = Message(subject=subject, sender=sender, recipients=recipients)
msg.body = text_body
#msg.html = html_body
mail.send(msg)
请参阅和。可能重复的谢谢,第二个链接的回复为我提供了服务,我仍然没有资格打扰一下。