Ошибки модуля в структуре приложения Flask - PullRequest
1 голос
/ 01 ноября 2019

Здравствуйте, я работаю в Windows и пытаюсь понять, как настроить приложение фляги, чтобы я мог запустить его из командной строки. Вдохновение от здесь . Моя фактическая структура каталогов выглядит следующим образом:

/yourapplication   
        __init__.py
        config.py
        views.py
        start_server.py
        /static
            style.css
        /templates
            layout.html
            index.html
            login.html

Мой файл init.py выглядит следующим образом:

from flask import Flask
app = Flask(__name__)

import yourapplication.views
app.config.from_object('config')

Поскольку у меня есть файл init.py «YourApplication»"это пакет, как показано в Eclipse IDE

мой config.py файл выглядит следующим образом

DEBUG=True

мой setup.py файл

из setuptools import setup

setup(
    name='yourapplication',
    packages=['yourapplication'],
    include_package_data=True,
    install_requires=[
        'flask',
    ],
)

my start_server.py выглядит следующим образом

from yourapplication import app

if __name__ == "__main__":
     app.run()

Я могу запустить start_server. py из Eclipse (IDE) и веб-сервер запускается, но когда я захожу в папку «YOURAPPLICATION» из командной строки Windows и запускаю start_server.py, я получаю «ImportError: нет модуля с именем YOURAPPLICATION»

  1. Какую ошибку я допускаю при структурировании моего приложения?
  2. Какую ошибку я допускаю при структурировании моего проекта?
  3. Как мне запустить его из командной строки?
  4. Как мне упаковать его, чтобы он мог работать на другом компьютере (на котором нет Eclipse)

IИспользую Windows и Python 2.7

Обновление 1 (следуя из 1-го ответа)

Просто я проверяю, что все делаю правильно, собираюсь заявитьшаг за шагом, что я сделал. Я зашел в папку выше / yourapplication, этот каталог выглядит как

/projects_folder
    /yourapplication
    /folder1
    /myfolder2

Из папки проектов (строка CMD Windows) я сделал следующее:

c:\joebloggs\projects_folder>

    set FLASK_APP=yourapplication
    set FLASK_ENV=development
    pip install -e .
    flask run

Тем не менее получить то же самоеошибка. Мне интересно в связанной статье , где главное? Я не могу понять, где будет точка входа для запуска веб-приложения. В моем случае у меня есть start_server.py . Который я запускаю в Eclipse IDE. Если этот файл упоминается в файле setup.py?

Только для тестирования, я не смогу просто запустить start_server.py из командной строки, чтобы запустить приложение (чтобез выполнения всех установок pip -e и FLASK_APP = yourapplication вещи?

1 Ответ

1 голос
/ 02 ноября 2019

Какую ошибку я допускаю при структурировании своего приложения?

Вы не допускаете ошибок при структурировании приложения. Структурирование приложений важно, но разные проекты следуют за разными структурами. Это не значит, что вы должны следовать той же структуре из документации.

Как мне запустить его из командной строки?

Сначала вы должны понять, какPython знает, где искать пакеты, когда вы вызываете import? Python импортирует работу путем поиска в каталогах, перечисленных в sys.path. sys.path список внутри yourapplication не будет содержать себя. Как заставить это бежать? не переходите на yourapplication и следуйте инструкциям по запуску из документации, которую вы связали.

Как упаковать его, чтобы он мог работать на другом компьютере (на котором нет Eclipse)

Затмение здесь не имеет значения. Следуйте той же структуре упаковки. Он должен работать на других машинах, если установлены все зависимости.

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