让项目可安装¶
让你的项目可以被安装意味着你可以构建一个 发行 文件并在另一个环境安装它,就像你在项目环境安装 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
文件,但是排除所有字节码(bytecode)文件。
参阅 官方打包教程 了解对所使用的文件和选项的更多解释。
安装项目¶
使用 pip
在虚拟环境中安装你的项目。
$ pip install -e .
这告诉 pip 在当前目录找到 setup.py
并以 可编辑 或 开发 模式安装它。可编辑模式意味着当你对本地代码做出改动时,只有改变了 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
目录。
继续阅读 测试覆盖率。