Чертежи Python Flask - ImportError: невозможно импортировать имя приложения - PullRequest
1 голос
/ 17 марта 2019

Я работаю над учебником по чертежам фляги, и первый шаг - просто загрузить фляжку и напечатать начальный «Hello World». Однако, когда я пытаюсь запустить исходный файл run.py, я получаю следующую ошибку:

Traceback (most recent call last):
File "run.py", line 1, in <module>
    from site import app
ImportError: cannot import name 'app' from 'site' (/Users/kyle/anaconda3/lib/python3.7/site.py)

Моя файловая структура:

website/
     run.py
     site/
        __init__.py

run.py

from site import app

if __name__ == '__main__':
    app.run(debug=True)

__ __ INIT. Ру

from flask import Flask

app = Flask(__name__)


@app.route('/')
def root():
    return "Hello World"

Я не понимаю, почему я получаю эту ошибку, поскольку, насколько я понимаю, если приложение объявлено в файле init , я могу его импортировать.

1 Ответ

1 голос
/ 17 марта 2019

Это происходит потому, что site - это модуль в стандартной библиотеке Python (https://docs.python.org/3/library/site.html).. Имя вашего модуля конфликтует с ним, и интерпретатор сначала загружается из библиотеки, следовательно, не находит Переменная app * 1006. * Есть несколько способов обойти это, но я подозреваю, что вы не очень привязаны к имени, поэтому я просто изменил бы его. Если вы переименуете папку site в web (или любое другое имя, не используемое библиотекой Python std), это будет работать.

...