專案可安裝化可以讓你的專案在不同環境裡面安裝,就像你在專案中安裝 Flask 或是其他套件庫一樣
如此一來你的專案就可以其他套件一樣部署,也可以用標準的 Python 工具來管理!
可安裝化還可以帶來以下好處,這些好處在教學中可能不太明顯或者初學者可能沒注意到
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 複製所有static
、templates
、schema.sql
資料夾中的檔案
但是排除所有編譯過的.pyc
檔案
更多參數和說明可以參考官方文件:Packaging Python Projects
使用pip
在虛擬環境中安裝專案
$ pip install -e .
這個指令告訴 pip 在當前資料夾中尋找setup.py
並在「編輯」或「開發」模式下安裝
編輯模式是指當改變本機的程式後,只需要重新安裝專案
就可以重新套用專案的設定檔,例如專案使用的相依套件之類
可以透過指令來查看專案的安裝情況
pip list
but you can call it from anywhere, not just the flask-tutorial directory.
對於專案運作並不會改變什麼,FLASK_APP
還是被設定為flaskr
,還是使用flask run
來啟動
不同的是現在可以在任何地方來呼叫,而不僅僅 是在flask_blog
目錄下