在上篇文章中學(xué)習(xí)了Flask框架——Flask-Sijax,這篇文章我們學(xué)習(xí)Flask框架——項目可安裝化。
項目可安裝化
項目可安裝化是指將一個項目變?yōu)榘l(fā)行文件,可以安裝到其他環(huán)境中。
簡單來說就是把項目變?yōu)榘惭b包、軟件或者可交互的網(wǎng)頁,讓不會代碼的人也能用。
項目可安裝化的好處:
- 可以從任何位置導(dǎo)入并使用;
- 可以使用pip install yourproject.whl來安裝項目并安裝相關(guān)依賴;
- 測試工具可以分離測試環(huán)境和開發(fā)環(huán)境。
描述項目
在進行可安裝化之前,需要創(chuàng)建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',
],
)
其中:
- name:進行項目可安裝化形成的安裝包名稱;
- version:安裝包版本;
- package:告訴Python 包所包括的文件夾(及其所包含的 Python 文件),使用find_packages()自動找到這些文件;
- include_package_data:假如項目還有靜態(tài)文件夾、模板文件夾時,需要設(shè)置為True,同時還需要在創(chuàng)建一個名為MANIFEST.in 文件來說明這些文件有哪些;
- zip_safe:是否可安裝化成壓縮包;
- install_requires:安裝要求。
MANIFEST.in文件代碼如下所示:
include flaskr/schema.sql #包含schema.sql文件
graft flaskr/static
graft flaskr/templates
global-exclude *.pyc
其中:
include表示包含所有,graft表示在某文件夾中的文件,global-exclude表示除了什么以外的文件。
上面MANIFEST.in文件作用是告訴Python復(fù)制所有static和templates文件夾中的文件,schema.sql文件,但是排除所有字節(jié)文件。
可安裝化項目
把上一步中的setup.py文件和MANIFEST.in文件寫好后,在終端執(zhí)行可安裝化項目命令:
pip install -e .
該命令作用是在當(dāng)前目錄下(.) 尋找setup.py文件并在編輯或者開發(fā)模式下安裝。
編輯模式是指當(dāng)改變本地代碼后,只需要重新項目。
我們可以使用pip list來查看執(zhí)行可安裝化命令后,項目的虛擬環(huán)境情況,如下圖所示:
進行項目可安裝化后的項目只是在虛擬環(huán)境中安裝了flaskr,該flaskr是我們在setup.py文件中設(shè)置的項目可安裝化后的安裝包名。除了這個變化之外,項目幾乎沒有一點改變,啟動項目還是原來未可安裝化項目前啟動的方式。
最大的好處是可以在任何地方運行應(yīng)用,而不僅僅是在本項目目錄下。
好了,關(guān)于Flask框架——項目可安裝化就講到這里了,感謝觀看,下篇文章繼續(xù)學(xué)習(xí)Flask框架——基于類的視圖。
公眾號:白巧克力LIN
該公眾號發(fā)布Python、數(shù)據(jù)庫、Linux、Flask、自動化測試、Git等相關(guān)文章