繁体   English   中英

Flask 导入错误:无法导入名称应用

[英]Flask ImportError: cannot import name app

教程中设置一个简单的 Flask 应用程序后, run.py文件包含:

from site import app
import os

app.secret_key = os.urandom(24)
app.run(debug=True)

我有site/__init__.py

from .views import app
from .models import graph

site/views.py

from .models import User, get_todays_recent_posts
from flask import Flask, request, session, redirect, url_for, render_template, flash

app = Flask(__name__)

带有一堆@app.route函数

site/models.py

from py2neo import Graph, Node, Relationship
from passlib.hash import bcrypt
from datetime import datetime
import os
import uuid

graph = Graph()

我在run.py的第一行不断收到ImportError: cannot import name app错误。

所有其他问题似乎都是循环导入问题,但我确定我没有。

我没有像项目中描述的那样创建虚拟环境,这可能是问题吗?

我在 Windows 上使用 python2.7。

编辑:

解决这个问题的方法是将整个项目重组为一个 .py 文件,无论如何,这感觉就像一个更清晰的文件结构。

源码

你会在site/__init__.py

from  .views import app 

这在site模块中声明了app ,因此允许您在运行模块中使用它

from site import app

否则,你需要

 from site.views import app 

appsite.views中定义,所以你需要从那里导入它。

from site.views import app

如果人们仍然遇到此问题,请将文件夹名称从站点更改为其他名称(例如网站),并在从站点导入时将其更改为新文件夹名称。

我想 Flask 中有些东西会阻止您命名目录站点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM