【Flask超入門】その0:Conda で仮想環境構築+自動起動
こんにちは!
絶賛転職活動中!脳筋ニシキです!
先日ご縁があって、とあるディベロッパー採用マネージャーの方と話す機会を頂いたのですが、その方の口からやたらと
『Flaskを使って〇〇』
『うちではFlaskが〜〜』
とFlask推しと取れる発言が多く、今までDjagoしか触ったことのない僕としては、
『こいつはちょっとはFlask触れといたほうがいいな』
と強く感じ、週末を使ってFlaskで少し遊んでみることにしました。
仮想環境を作る
今日ここで触れるのはFlaskではなく、仮想環境になります。
(Flaskについてはまた後日!)
仮想環境のメリット
個々のプロジェクトごとに使用されるライブラリ(特定のバージョン)のみインストールされている綺麗で無駄のない環境を用意できる上に管理しやすい
という点だと僕は認識しています。
なので今回はFlaskで遊ぶための仮想環境を作っていきます。
環境
MacBook Pro (macOS Mojave)
python=3.7.4
conda=4.7.5
対象者
- インストールはしたものの Anaconda 初心者
- conda で複数のプロジェクトをスマートに管理したい
- そもそも仮想環境って何?
とういう方々に向けて書き記していきたいと思います。
まずはプロジェクトのディレクトリを作成
ディレクトリ内に仮想環境構築
conda create --name {任意の仮想環境名} {任意ライブラリ等}
以下の condaコマンドで仮想環境を作ります。
その際必要なライブラリ等も同時にインストールします。
$ conda create --name flask_project_env flask sqlalchemy numpy pandas
実行しますか?と聞かれるので、問題がなければ "y" を選択。
$ Proceed ([y]/n)? y
準備が整うと以下のような Activate と Deactivate のメッセージが出てくると思うので
# # To activate this environment, use: # > conda activate flask_project_env # # To deactivate an active environment, use: # > conda deactivate #
早速起動 (Activate) してみましょう!
仮想環境起動!
conda activate {仮想環境名}
$ conda activate flask_project_env
以下のようなエラーメッセージが出た場合
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. To initialize your shell, run $ conda init <SHELL_NAME> Currently supported shells are: - bash - fish - tcsh - xonsh - zsh - powershell See 'conda init --help' for more information and options. IMPORTANT: You may need to close and restart your shell after running 'conda init'.
説明に沿って
$ conda init bash
と入力し、ターミナルを再起動。
すると
(flask_project_env)
出来ました!
pip list でインストールされてるライブラリーを確認してみると
$ pip list Package Version --------------- --------- certifi 2019.9.11 Click 7.0 Flask 1.1.1 itsdangerous 1.1.0 Jinja2 2.10.3 MarkupSafe 1.1.1 mkl-fft 1.0.14 mkl-random 1.1.0 mkl-service 2.3.0 numpy 1.17.2 pandas 0.25.1 pip 19.2.3 python-dateutil 2.8.0 pytz 2019.3 setuptools 41.4.0 six 1.12.0 SQLAlchemy 1.3.9 Werkzeug 0.16.0 wheel 0.33.6
上で指定したライブラリーとそれらに付随したライブラリーが表示されていると思います。
仮想環境の内容をYAMLファイルに出力して保存
仮想環境が整ったら、以下のコマンドで ”environment.yaml” を生成しておきます。
conda env export > {任意のファイル名}.yaml
$ conda env export > environment.yaml
中身は以下のようになります。
$ cat environment.yaml name: flask_project_env channels: - defaults dependencies: - blas=1.0=mkl - ca-certificates=2019.8.28=0 - certifi=2019.9.11=py37_0 - click=7.0=py37_0 - flask=1.1.1=py_0 - intel-openmp=2019.4=233 - itsdangerous=1.1.0=py37_0 - jinja2=2.10.3=py_0 - libcxx=4.0.1=hcfea43d_1 - libcxxabi=4.0.1=hcfea43d_1 - libedit=3.1.20181209=hb402a30_0 - libffi=3.2.1=h475c297_4 - libgfortran=3.0.1=h93005f0_2 - markupsafe=1.1.1=py37h1de35cc_0 - mkl=2019.4=233 - mkl-service=2.3.0=py37hfbe908c_0 - mkl_fft=1.0.14=py37h5e564d8_0 - mkl_random=1.1.0=py37ha771720_0 - ncurses=6.1=h0a44026_1 - numpy=1.17.2=py37h99e6662_0 - numpy-base=1.17.2=py37h6575580_0 - openssl=1.1.1d=h1de35cc_2 - pandas=0.25.1=py37h0a44026_0 - pip=19.2.3=py37_0 - python=3.7.4=h359304d_1 - python-dateutil=2.8.0=py37_0 - pytz=2019.3=py_0 - readline=7.0=h1de35cc_5 - setuptools=41.4.0=py37_0 - six=1.12.0=py37_0 - sqlalchemy=1.3.9=py37h1de35cc_0 - sqlite=3.30.0=ha441bb4_0 - tk=8.6.8=ha441bb4_0 - werkzeug=0.16.0=py_0 - wheel=0.33.6=py37_0 - xz=5.2.4=h1de35cc_4 - zlib=1.2.11=h1de35cc_3 prefix: /anaconda3/envs/flask_project_env
こうすることで同じ仮想環境が次のコマンドで再構築することが可能に。
$ conda create -f envirornment.yaml
【おまけ】
超便利!自動仮想環境起動スクリプト
こちらを参考にさせていただきました。ありがとうございます。
$ nano ~/.bash_profile
で以下をbash_profileに付け足すと
# Auto activate conda environments function conda_auto_env() { if [ -e "environment.yaml" ]; then ENV_NAME=$(head -n 1 environment.yaml | cut -f2 -d ' ') # Check if you are already in the environment if [[ $CONDA_PREFIX != *$ENV_NAME* ]]; then # Try to activate environment source activate $ENV_NAME &>/dev/null fi fi } export PROMPT_COMMAND="conda_auto_env;$PROMPT_COMMAND"
これで、"environment.yaml" が存在するディレクトリに移動すると自動で仮想環境を起動してくれます。これホント便利!
駆け足でしたが、これでCondaを使った仮想環境の準備が整いました!
次回から早速今回構築した仮想環境を使って Flask で遊んでいきます!
【Flask超入門】その1
atsashimipy.hatenablog.com
ありがとうございました!