使项目可安装 — Flask 文档

来自菜鸟教程
Flask/docs/2.0.x/tutorial/install
跳转至:导航、​搜索

使项目可安装

使您的项目可安装意味着您可以构建一个 发行版 文件并将其安装在另一个环境中,就像您在项目环境中安装 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() 会自动查找这些目录,因此您不必键入它们。 要包含其他文件,例如静态和模板目录,请设置 include_package_data。 Python 需要另一个名为 MANIFEST.in 的文件来告诉其他数据是什么。

MANIFEST.in

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

这告诉 Python 复制 statictemplates 目录中的所有内容,以及 schema.sql 文件,但要排除所有字节码文件。

有关所用文件和选项的其他说明,请参阅 官方打包指南


安装项目

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

$ pip install -e .

这告诉 pip 在当前目录中找到 setup.py 并在 editabledevelopment 模式下安装它。 可编辑模式意味着当您对本地代码进行更改时,如果您更改了有关项目的元数据(例如其依赖项),则只需重新安装即可。

可以观察到项目现在安装了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 目录。

继续 测试覆盖率