在 GCP (Windows Server) 使用 Apache Server + Flask + Python + LINE BOT (Part 2— 安裝 Python 虛擬環境 + Flask,透過外網訪問)

泥膩泥膩
男友說我是宅包
5 min readJan 16, 2020

目的:在 Windows Server 使用 Python Flask 作為 LINE BOT callback 使用

一、安裝 virtualenv、 virtualenvwrapper-win

二、使用 Python 虛擬環境

三、安裝 Flask

四、測試 Flask

五、通過外網訪問

一、安裝 virtualenv、 virtualenvwrapper-win

virtualenv 是 Python 的虛擬環境

$ pip install virtualenvor 如果你有多版本的 Python
$ python3 -m pip install virtualenv

virtualenvwrapper-win 是仰賴 virtualenv。用 virtualenv 建立的虛擬環境必須 cd 到指定資料夾下的目錄才能利用 activate 啟動,如果虛擬環境太多,每次啟動就非常麻煩,因此可以使用 virtualenvwrapper 解決這個問題

$ pip install virtualenvwrapper-win

二、使用 Python 虛擬環境

2-1. 建立 Python 虛擬環境

$ mkvirtualenv [venv-name]or 如果你有多版本的 Python
$ virtualenv -p C:\Python27\python2.exe [venv-name]

2-2. 啟動剛剛建立的虛擬環境

進入虛擬環境:首先 [venv-name] 資料夾下的 Scripts

啟動虛擬環境

$ activate/activate.bator 如果有安裝 virtualenvwrapper-win,就可以直接
$ workon [venv-name]

退出虛擬環境

$ deactivate/deactivate.bator 如果有安裝 virtualenvwrapper-win,就可以直接
$ deactivate

其他指令

刪除某個虛擬環境
$ rmvirtualenv [venv-name]
列出所有的虛擬環境
$ lsvirtualenv

三、安裝 Flask

進入虛擬環境後,安裝 Flask

$ pip install flask

四、測試 Flask

先新增一個簡單的 Flask Hello World,如下圖

五、通過外網訪問

  1. 設定 GCP VM 防火牆規則 - 允許的通訊協定/通訊埠,新增 80 port

2. 設定 Windows Server 內部的防火牆規則

2.1 打開設定 (Setting) — Windows 防火牆

2.2 進階設定

2.3 輸入規則 — 新增規則 — (把要開通的 port 打上去) 完成!

就可以在輸入規則上看到你剛剛設定的 port 了

3. 修改 Flask 程式碼 app.run(host, port)

在 app.run() 中新增參數 host = “0.0.0.0” 和指定的 port = 80 (你也可以改其他port)

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
return "Hello World"

if __name__=="__main__":
app.run(host="0.0.0.0", port=80)

4. 測試一下外網連不連的到,在瀏覽器上輸入你的 IP 和 PORT

這樣就結束了嗎?

... 並沒有

LINE BOT 的 Callback 在另一篇討論 ...QQ

--

--