iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
Software Development

都是 P 開頭的程式語言,你是在 py 啥啦系列 第 17

[17] [燒瓶裡的部落格] 07. 專案可安裝化(打包)

  • 分享至 

  • xImage
  •  

專案可安裝化可以讓你的專案在不同環境裡面安裝,就像你在專案中安裝 Flask 或是其他套件庫一樣
如此一來你的專案就可以其他套件一樣部署,也可以用標準的 Python 工具來管理!

可安裝化還可以帶來以下好處,這些好處在教學中可能不太明顯或者初學者可能沒注意到

  1. 目前情況下 Python 和 Flask 只能在你的專案資料夾中使用 flaskr package
    專案可安裝化之後就可以從任何地方引入來使用
  2. 可以和其他套件一樣管理依賴項目
    使用pip install yourproject.whl安裝並一併安裝相關依賴
  3. 測試工具可以分離測試環境和開發環境

專案敘述檔案

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 複製所有statictemplatesschema.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目錄下


上一篇
[16] [燒瓶裡的部落格] 06. 部落格的 Blueprint
下一篇
[18] [燒瓶裡的部落格] 08. 撰寫測試
系列文
都是 P 開頭的程式語言,你是在 py 啥啦30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言