こちらが完了していないなら先に済ませてから
flaskの環境を開発していきます
Pythonのインストール
まずは仮想環境に入ります
仮想環境に入るにはVagrantFileを生成したディレクトリに
移動する必要があります
vagrantコマンドが動かない場合は
必ず「mvp/centos7」のディレクトリにいるか確認しましょう
$ cd Documents/mvp/centos7/ $ vagrant up $ vagrant ssh [vagrant@localhost ~]$
仮想環境に入ることができたらpyenvをインストールします
Pythonのバージョンを簡単に変更できるツールです
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv $ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv # 環境変数を入れます $ vim ~/.profile
このようなとくていのファイルが表示されるので
「a」ボタンを押して編集を有効化します
「a」ボタンを押すと左下に「INSERT」という文字が出てきます
これは編集中という意味です
次にこちらを追加します
export PYENV_ROOT=$HOME/.pyenv export PATH=$PYENV_ROOT/bin:$PATH eval "$(pyenv init -)"
追加するとこのような感じになります
追加が完了したらこの修正を反映させます
まずは「Esc」キーを押します
「INSERT」の文言がなくなり修正モードが終了しました
次はこの修正を適用するために「:wq」と打ち込んでエンターを押します
エンターを押すと元のターミナルに戻ります
ターミナルに戻ったらこちらを実行
先ほどの修正をVagrantで適用します
$ source ~/.profile
次は利用可能なPythonのバージョンを確認します
$ pyenv install -l
たくさん出てきますが今回は3.6.4をインストールします
$ pyenv install 3.6.4
次はPython3.6.4を使えるようにします
# Pythonのバージョン管理機能を作成 $ pyenv virtualenv 3.6.4 venv # 起動 $ source /home/vagrant/.pyenv/versions/venv/bin/activate # 起動すると[vagrant@localhost]の前に(venv)が付きます [vagrant@localhost ~]$ source /home/vagrant/.pyenv/versions/venv/bin/activate (venv) [vagrant@localhost ~]$
次はPythonのバージョンを確認します
$ python --version Python 3.6.4
無事にインストールされています!
それでは次はPython用のディレクトリを作成していきます
# pythonプロジェクト用のディレクトリ $ mkdir app_python # 移動 $ cd app_python # テスト用のプロジェクト作成 $ mkdir flask_test # 移動 $ cd flask_test # プロジェクトファイル作成 $ touch app.py
Visual studio codeでapp.pyを開きこのように修正します
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return "Hello World!" if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
その後実行するためにこちらをターミナルで実行
$ python app.py Traceback (most recent call last): File "app.py", line 1, in <module> from flask import Flask ModuleNotFoundError: No module named 'flask'
flaskがインストールされていないのでインストールします
$ pip install flask
完了したら再度サーバーを起動します
$ python app.py
localhost:5000にアクセスしても表示されないので、
こちらの設定を行います
※以下の修正方法はRuby on Railsで同じ問題を対処した方法です。私の環境では動きましたが、万が一動かなければコメントするかご連絡ください
それではこちらを直していきます
まずは仮想環境からでます
$ exit
次はVagrantFileにこちらを追加します
# Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine. In the example below, # accessing "localhost:8080" will access port 80 on the guest machine. # NOTE: This will enable public access to the opened port # config.vm.network "forwarded_port", guest: 80, host: 8080 config.vm.network :forwarded_port, guest: 3000, host: 3000
Ctrl + S で保存してからvagrantに設定を反映させるためにこちらを実行
$ vagrant reload
実行が完了したら再度仮想環境に入ります
$ vagrant ssh
仮想環境へ入ったらこちらのコマンドを実行していきます
$ sudo systemctl stop firewalld.service $ sudo systemctl mask firewalld.service $ sudo systemctl list-unit-files | grep firewalld
実行が完了したら先ほど作成したプロジェクトに移動して
flaskを起動してみます
※source …..を実行してvenvに入ってから実行してください。venvはpython3.6.4を動かすことができるkんきょうです。
$ cd app_python/flask_test/ $ python app.py
以下のリンクでログインしたところできました!
http://192.168.33.10:5000/
無事つながりました!
お疲れさまでした、これでflaskの環境設定は完了です!
いろいろと細かい説明は省きましたが、気になるようであれば「参考記事」
で調べるか自分でgoogleで調べてみてください
参考記事
Vagrant(CentOS7) + Rails環境でホストのブラウザからサーバ接続できなかった時の対処
MacOSにVagrantとPyenvとpyenv-virtualenv使ってUbuntu16.04、Python3系の仮想環境を構築
Flask ImportError: No Module Named Flask
コメントを残す