• en
  • Language: ru
  • Documentation version: 1.1.x

Сделать проект устанавливаемым

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

Установка также имеет другие преимущества, которые могут быть неочевидны из учебника или для нового пользователя Python, включая:

  • В настоящее время Python и Flask понимают, как использовать пакет flaskr только потому, что вы запускаете его из каталога вашего проекта. Установка означает, что вы можете импортировать его независимо от того, откуда вы запускаетесь.

  • Вы можете управлять зависимостями вашего проекта так же, как и другими пакетами, поэтому pip install yourproject.whl устанавливает их.

  • Инструменты тестирования позволяют изолировать тестовую среду от среды разработки.

Примечание

Это вводится в учебник с опозданием, но в своих будущих проектах вы всегда должны начинать с этого.

Опишите проект

Файл setup.py описывает ваш проект и файлы, входящие в него.

setup.py
from setuptools import find_packages, setup

setup(
    name='flaskr',
    version='1.0.0',
    packages=find_packages(),
    include_package_data=True,
    zip_safe=False,
    install_requires=[
        'flask',
    ],
)

packages указывает Python, какие каталоги пакетов (и содержащиеся в них файлы Python) следует включить. find_packages() находит эти каталоги автоматически, поэтому вам не нужно их вводить. Для включения других файлов, таких как каталоги static и templates, задается include_package_data. Python нужен еще один файл с именем MANIFEST.in, чтобы указать, что это за другие данные.

MANIFEST.in
include flaskr/schema.sql
graft flaskr/static
graft flaskr/templates
global-exclude *.pyc

Это указывает Python скопировать все в каталоги static и templates, а также файл schema.sql, но исключить все файлы байткода.

Смотрите official packaging guide для другого объяснения используемых файлов и опций.

Установите проект

Используйте pip для установки вашего проекта в виртуальной среде.

$ pip install -e .

Это указывает pip найти setup.py в текущем каталоге и установить его в режиме редактируемый или разрабатываемый. Режим редактирования означает, что по мере внесения изменений в ваш локальный код, вам потребуется повторная установка только в случае изменения метаданных о проекте, например, его зависимостей.

Вы можете заметить, что проект теперь установлен с pip list.

$ pip list

Package        Version   Location
-------------- --------- ----------------------------------
click          6.7
Flask          1.0
flaskr         1.0.0     /home/user/Projects/flask-tutorial
itsdangerous   0.24
Jinja2         2.10
MarkupSafe     1.0
pip            9.0.3
setuptools     39.0.1
Werkzeug       0.14.1
wheel          0.30.0

Ничего не изменится по сравнению с тем, как вы запускали свой проект до сих пор. FLASK_APP по-прежнему установлен на flaskr, а flask run по-прежнему запускает приложение, но вы можете вызвать его из любого места, а не только из каталога flask-tutorial.

Продолжить Тестовое покрытие.