本投稿はMIXI DEVELOPERS Advent Calendar 2023の16日目の記事です。
他の記事も面白いものが多いのでぜひ見てください!
目的
LambdaでちょっとしたAPIを作りたいって時ありますよね?
私はPythonを選択する時が多いのですが、ここではPythonとAPI作成でよく使用するFlaskの開発環境を構築していきます。
前提条件
- macユーザ
- Homebrewがインストール済
手順
pyenv
Pythonのバージョンを管理するpyenvをインストールする。
$ brew install pyenv
Python
pyenvを使用してPythonをインストールする。
今回はlambdaに使用したいので、こちらのページから利用できる最新版をインストールする。
% pyenv install 3.11
python-build: use openssl@3 from homebrew
python-build: use readline from homebrew
Downloading Python-3.11.7.tar.xz...
-> https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tar.xz
Installing Python-3.11.7...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.11.7 to /Users/satoshi.baba/.pyenv/versions/3.11.7
pyenvでインストールしたPythonへのパスを通す。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(pyenv init -)"' >> ~/.zshrc
$ source ~/.zshrc
全体で使用するPythonのバージョンを指定する。
$ pyenv global 3.11.7
$ python --version
Python 3.11.7
pipenv
依存関係管理をしてくれるpipenvをインストールする。
$ brew install pipenv
==> Installing dependencies for pipenv: gdbm, sqlite, xz and python
(中略)
zsh completions have been installed to:
/opt/homebrew/share/zsh/site-functions
Flask
PythonでAPIを作るときに割とベターなFlaskを導入する。
適当なディレクトリに移動する。
$ cd ProductName
pipenvでFlaskを突っ込む。
$ pipenv install flask
HelloWorldを出力するソースを置いてみる。
HelloWorld.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
name = "Hello World"
return name
if __name__ == "__main__":
app.run(debug=True)
pipenvコマンドで仮想マシンを立てて実行する。
$ pipenv run python HelloWorld.py
* Serving Flask app 'HelloWorld'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://127.0.0.1:5000
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: 120-449-468
途中で出力されているURLをブラウザで開くとHello Worldが表示される。
http://127.0.0.1:5000/
これ環境構築終わり。