這篇是安裝過程遇到的問題記錄,若想知道詳細教學可以參考 10 大神[GCP 教學-Python] #1 部署第一個 Python Flask API 程式這系列的教學文章~
1.在透過 SSH 進入虛擬主機的 cmd 後,先進行更新。
sudo apt-get update
sudo apt-get upgrade
2.接著安裝 python3 環境
sudo apt-get install python3 -y
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
3.再來安裝 pip
需要先進行前面更新,不然會出現 python3-pip has no installation candidate
sudo apt-get install python3-pip
4.nano 建立測試用有 flask 套件的 index.py,並注意其位置
from flask import Flask
app=Flask(__name__)
@app.route('/')
def hello():
return 'hello !'
if __name__ == '__main__':
app.run(host='0.0.0.0',port=80)
5.安裝 flask 並執行
因為一開始測試環境開了 80 port 的關係,所以程式必須在管理者權限下進行pip install flask
。若沒加管理者權限 sudo,則安裝位置會跑到 user 的 site-package,接下來 sudo python index.py
會顯示 ImportError: No module named flask
sudo pip install flask
sudo python index.py
若有加 sudo,前面的步驟都有做對但還是顯示 No module named flask
,可以看一下目前運行的 python 版本是 python2 還是 python3,不同 python 版本套件安裝的位置不一樣
# 使用 python3 版本執行的方法
# 在cmd中執行
ls /usr/bin/python*
nano ~/.bashrc
# 將這段內容貼到 .bashrc
alias python='/usr/bin/python3.6'
alias pip='pip3'
# 在cmd中執行
source ~/.bashrc
sudo python3 index.py
正常來說經過上面步驟,就可以透過 GCP 的外部 IP 成功看到自己的測試頁面,並進一步安裝需要的 requirements.txt,或安裝 Gunicorn 讓程式可以在背景執行等。
6.若遇到程式有在執行,但無法透過外部 IP 登入測試頁面,類似 stackoverflow 這個情形
Can’t access Google Cloud Compute engine external IP to access flask app
可以從幾個地方試試:
- 將 Https 的網址改成 Http
- 先用 80 port,然後網址後面要加上 :80