Flask ImportError:无法导入名称应用

时间:2018-05-05 14:24:55

标签: python flask

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文件,无论如何这感觉就像一个更干净的文件结构。

3 个答案:

答案 0 :(得分:4)

查看the source code

您将在site/__init__.py

中看到
from  .views import app 

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

from site import app

否则,您需要

 from site.views import app 

答案 1 :(得分:1)

appsite.views内定义,因此您需要从那里导入。

from site.views import app

答案 2 :(得分:0)

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

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