Flask ImportError:无法导入名称应用

Mar*_*man 6 python flask

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

from site import app
import os

app.secret_key = os.urandom(24)
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

我有site/__init__.py与

from .views import app
from .models import graph
Run Code Online (Sandbox Code Playgroud)

和下 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__)
Run Code Online (Sandbox Code Playgroud)

有很多@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 Code Online (Sandbox Code Playgroud)

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

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

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

我在Windows上使用python2.7。

编辑:

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

cri*_*007 8

看一下源代码

你会看到 site/__init__.py

from  .views import app 
Run Code Online (Sandbox Code Playgroud)

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

from site import app
Run Code Online (Sandbox Code Playgroud)

否则,您需要

 from site.views import app 
Run Code Online (Sandbox Code Playgroud)