venv + Flask
venv環境でFlask
dockerで作ったpythonコンテナでvenv環境+flaskを使用して簡単な
アプリを起動させるまでをまとめる。
先に言っておくとvenv環境は元の環境を汚さないという意味でとても良い。
前回作成したDocker環境にログインする。
# docker exec -it pythonEnv bash
venv
1.venv環境のインストール
# python -m venv flaskVenv
2.Activate
# cd flaskVenv # source bin/activate
3.flask インストール
# pip install flask
4.pip listの確認
# pip list ~~略 Flask 1.1.2 ~~略
Flaskがインストールされている。
ここであえて抜けてみる
# exit # pip list
当然Flaskがない
デフォルトのPython環境を汚さずにやりたい放題できる。
flask
Docker外で書いたソースをPythonのコンテナに転送する。
1.ソース
ファイル名:server.py
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello, World' app.run(host='0.0.0.0', port=80)
2.ソースコピーしてログイン
$ docker cp server.py pythonEnv:/root/ $ docker exec -it pythonEnv bash
3.Activateから起動
# cd /root # source flaskVenv/bin/activate # python server.py * Serving Flask app "server" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://0.0.0.0:80/ (Press CTRL+C to quit)
4.動作確認
ブラウザからホストマシンのIPにhttpアクセスすれば「Hello, World」が拝められる。
まとめ
当然ながら、sourceせずに起動するとmoduleがないと怒られる。
また、あたりまえだが動作確認はVMのIPにhttpアクセスしないとみられない。(ハマったのは内緒)