让项目可安装

让你的项目可以被安装意味着你可以构建一个 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"

参阅 官方打包教程 了解对所使用的文件和选项的更多解释。

安装项目

使用 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 目录。

继续阅读 测试覆盖率