从this教程设置一个简单的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()
我在ImportError: cannot import name app
的第一行收到run.py
错误。
所有其他问题似乎都是循环导入问题,但我确信我没有。
我没有创建项目中描述的虚拟环境,这可能是问题吗?
我在Windows上使用python2.7。
修改
解决问题的方法是将整个项目重组为一个.py文件,无论如何这感觉就像一个更干净的文件结构。
答案 0 :(得分:4)
您将在site/__init__.py
from .views import app
这在app
模块中声明site
,因此允许您在运行模块中使用它
from site import app
否则,您需要
from site.views import app
答案 1 :(得分:1)
app
在site.views
内定义,因此您需要从那里导入。
from site.views import app
答案 2 :(得分:0)
如果人们仍然遇到此问题,请将文件夹名称从站点更改为其他名称(例如网站),并在从站点导入时将其更改为新文件夹名称。
我想 Flask 中有些东西会阻止您命名目录站点。