Flask ImportError: невозможно импортировать имя приложения - PullRequest
0 голосов
/ 05 мая 2018

После настройки простого приложения 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.

Все остальные вопросы кажутся круговыми, но я уверен, что у меня их нет.

Я не создал виртуальную среду, как описано в проекте, может ли это быть проблемой?

Я использую python2.7 для Windows.

EDIT:

Устранение проблемы состояло в том, чтобы реструктурировать весь проект в один файл .py, который в любом случае выглядит как более чистая файловая структура.

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

Посмотрите на исходный код

Вы увидите в site/__init__.py

from  .views import app 

Это объявляет app в модуле site, поэтому вы можете использовать его в модуле запуска

from site import app

В противном случае вам нужно

 from site.views import app 
0 голосов
/ 05 мая 2018

app определено в site.views, поэтому вам нужно импортировать его оттуда.

from site.views import app
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...