這次需要安裝的套件有
fastapi
uvicorn
如果要在 local 直接安裝套件,雖然可以直接使用 pip3 安裝 ( 但非常不建議這樣做! )
pip3 install fastapi
這邊想要提供一個更好的環境管理方式
使用 poetry 來管理環境
或是使用 venv 在虛擬環境中安裝
可以避免在開發時,全域環境中的套件版本相依性的 error !
poetry
是一個 python 的 dependency manager
( 可以在官方安裝教學中找到安裝方式 )
poetry 也會順邊幫我們創建一個虛擬環境
- 快速安裝
如果已經在專案目錄中 ,可以使用以下指令安裝
fastapi
和uvicorn
poetry init -n
poetry add fastapi
poetry add uvicorn
- 互動式安裝
不加上
-n
參數,會進入互動式安裝
poetry init
應該會跳出以下畫面
接者在 package name
輸入 fastapi
和 uvicorn
如果要進入 poetry 的虛擬環境
需使用 poetry shell
指令
或是使用 poetry run
指令
以虛擬環境執行 python 檔案 ( 但不會進入虛擬環境 )
poetry run python3 main.py
如果不想使用 poetry ,可以使用 python 內建的 venv
python3 -m venv venv
會在當前目錄下創建一個 venv
資料夾
一般會將 venv
加入 .gitignore
中
如果要離開虛擬環境,可以使用 deactivate
指令
source venv/bin/activate
pip3 install fastapi
pip3 install uvicorn
uvicorn
是一個 ASGI server
( ASGI 是一個 python 的 async server gateway interface )
FastAPI 也是使用 uvicorn 來啟動 server
安裝完 uvicorn
之後,可以使用以下指令來啟動 server
uvicorn <path_to_your_app>:<app_object_name> --host <host> --port <port>
如果有一下的檔案結構
.
└── main.py
而 main.py
中有一個 my_app
instance
from fastapi import FastAPI
my_app = FastAPI()
@my_app.get("/")
def root():
return {"message": "Hello World"}
並且要跑在 0.0.0.0
的 8000
port 上
可以使用以下指令來啟動 server
uvicorn main:my_app --host 0.0.0.0 --port 8000
# 如果已經有在虛擬環境中
poetry run uvicorn main:my_app --host 0.0.0.0 --port 8000
# 如果有使用 poetry 但沒有進入虛擬環境
這次的環境安裝,可以使用 poetry
或是 venv
poetry
- 使用
poetry shell
進入虛擬環境 - 一搬會將
poetry.lock
加入.gitignore
中
- 使用
venv
- 使用
source venv/bin/activate
進入虛擬環境 - 一搬會將整個
venv
目錄加入.gitignore
中
- 使用
Install Poetry
Poetry tutorial
Python venv
Python venv tutorial