Сделать проект устанавливаемым¶
Сделать ваш проект устанавливаемым означает, что вы можете собрать дистрибутивный файл и установить его в другой среде, точно так же, как вы установили Flask в среде вашего проекта. Это делает развертывание вашего проекта таким же, как установка любой другой библиотеки, так что вы используете все стандартные инструменты Python для управления всем.
Установка также имеет другие преимущества, которые могут быть неочевидны из учебника или для нового пользователя Python, включая:
В настоящее время Python и Flask понимают, как использовать пакет
flaskr
только потому, что вы запускаете его из каталога вашего проекта. Установка означает, что вы можете импортировать его независимо от того, откуда вы запускаетесь.Вы можете управлять зависимостями вашего проекта так же, как и другими пакетами, поэтому
pip install yourproject.whl
устанавливает их.Инструменты тестирования позволяют изолировать тестовую среду от среды разработки.
Примечание
Это вводится в учебник с опозданием, но в своих будущих проектах вы всегда должны начинать с этого.
Опишите проект¶
Файл setup.py
описывает ваш проект и файлы, входящие в него.
from setuptools import find_packages, setup
setup(
name='flaskr',
version='1.0.0',
packages=find_packages(),
include_package_data=True,
install_requires=[
'flask',
],
)
packages
указывает Python, какие каталоги пакетов (и содержащиеся в них файлы Python) следует включить. find_packages()
находит эти каталоги автоматически, поэтому вам не нужно их вводить. Для включения других файлов, таких как каталоги static и templates, задается include_package_data
. Python нужен еще один файл с именем MANIFEST.in
, чтобы указать, что это за другие данные.
include flaskr/schema.sql
graft flaskr/static
graft flaskr/templates
global-exclude *.pyc
Это указывает Python скопировать все в каталоги static
и templates
, а также файл schema.sql
, но исключить все файлы байткода.
Смотрите официальные Packaging tutorial и detailed 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
Ничего не изменится по сравнению с тем, как вы запускали свой проект до сих пор. --app
по-прежнему установлен на flaskr
, а flask run
по-прежнему запускает приложение, но вы можете вызвать его из любого места, а не только из каталога flask-tutorial
.
Продолжить Тестовое покрытие.