プロジェクトをインストール可能にする
プロジェクトをインストール可能にするということは、プロジェクトの環境に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,
zip_safe=False,
install_requires=[
'flask',
],
)
packages
は、含めるパッケージディレクトリ(およびそれらに含まれるPythonファイル)をPythonに指示します。 find_packages()
はこれらのディレクトリを自動的に検出するため、入力する必要はありません。 静的ディレクトリやテンプレートディレクトリなどの他のファイルを含めるには、include_package_data
を設定します。 Pythonには、この他のデータが何であるかを伝えるために、MANIFEST.in
という名前の別のファイルが必要です。
include flaskr/schema.sql
graft flaskr/static
graft flaskr/templates
global-exclude *.pyc
これにより、Pythonはstatic
ディレクトリとtemplates
ディレクトリ、およびschema.sql
ファイルのすべてをコピーしますが、すべてのバイトコードファイルは除外します。
使用されるファイルとオプションの別の説明については、公式パッケージガイドを参照してください。
プロジェクトをインストールします
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
ディレクトリだけでなく、どこからでも呼び出すことができます。
テストカバレッジに進みます。