使项目可安装

使你的项目可安装意味着你可以构建一个 wheel 文件,并在另一个环境中安装它,就像你在项目的环境中安装 Flask 一样。这使得部署你的项目与安装任何其他库相同,因此你正在使用所有标准的 Python 工具来管理一切。

安装还带来了其他好处,这些好处可能从教程中或作为新的 Python 用户来说并不明显,包括

  • 目前,Python 和 Flask 了解如何使用 flaskr 包,仅仅因为你正在从你的项目目录中运行。安装意味着你可以从任何地方导入它,无论你从哪里运行。

  • 你可以像其他包一样管理项目的依赖项,因此 pip install yourproject.whl 会安装它们。

  • 测试工具可以将你的测试环境与开发环境隔离。

注意

这在教程的后期才介绍,但在你未来的项目中,你应该始终从这里开始。

描述项目

pyproject.toml 文件描述了你的项目以及如何构建它。

pyproject.toml
[project]
name = "flaskr"
version = "1.0.0"
description = "The basic blog app built in the Flask tutorial."
dependencies = [
    "flask",
]

[build-system]
requires = ["flit_core<4"]
build-backend = "flit_core.buildapi"

有关使用的文件和选项的更多说明,请参阅官方的 Packaging tutorial

安装项目

使用 pip 在虚拟环境中安装你的项目。

$ pip install -e .

这告诉 pip 在当前目录中查找 pyproject.toml 并以可编辑开发模式安装项目。可编辑模式意味着,当你对本地代码进行更改时,只有在更改有关项目的元数据(例如其依赖项)时才需要重新安装。

你可以通过 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
Werkzeug       0.14.1

从你目前运行项目的方式来看,没有任何变化。--app 仍然设置为 flaskrflask run 仍然运行应用程序,但你可以从任何地方调用它,而不仅仅是 flask-tutorial 目录。

继续阅读 测试覆盖率