Flask框架——項目可安裝化

在上篇文章中學(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)文章

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容