今回はPythonで使いやすく、整理された開発環境を構築する手順を紹介していこうと思います。
目標としては、
- 複数のバージョンを使い分けることができる
- プロジェクトごとにパッケージをインストールできる
という状況に持っていけるようになること。
Ruby勉強中でもあるので、Rubyの開発環境を作成するときと比較しながら進めていきます。
利用するツール
pyenv
複数バージョンのPythonを管理・切り替えするためのツールです。
名前の通り、rbenvのPython版といったイメージで問題ありません。実際に使用するコマンドや設定方法もrbenvと酷似しています。
virtualenv
Pythonの仮想実行環境を管理するためのツール。開発しているアプリケーションディレクトリごとに仮想環境を構築することができます。細かい仕組みは異なりますが、Railsを開発するときにvendor/bundleにgemを管理する感覚に近いと考え、このvirtualenvをチョイスしました。
Pythonはバージョン管理、パッケージ管理の手法がいくつも存在していて、スタンダードらしいスタンダードが存在していない状況ですが、できる限り、rbenv/bundlerと近い感覚で管理できるよう、この2つのツールを選定しました。
pyenv
インストール
まずは複数のバージョンのPythonを切り替えることができるよう、pyenvのインストールとバージョンの指定を行います。
brew install pyenv
Macであれば上記のコマンド一発でpyenvをインストールすることが可能です。
環境変数の設定
しかしpyenvをインストールしたけでは、pythonコマンドなどを実行したときに使用されるのは、元からPCにインストールされているpythonのままです。
そこで、利用するPythonをpyenvにインストールしたPythonに設定するために以下のコマンドを実行し、環境変数の定義、シェルの再起動を行います。
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(pyenv init -)"' >> ~/.bash_profile source ~/.bash_profile exec "$SHELL"
使用するバージョンのインストール・選択
次にインストールできるPythonのバージョンの一覧を取得しましょう。
pyenv install --list
ずらっとPythonのバージョンが表示されますので、その中から使用したいバージョンをメモしておきます。
今回は3.6.2をインストールしてみます。
pyenv install 3.6.2 pyenv global 3.6.2 pyenv rehash
上記のコマンドでそれぞれ、使用したいバージョンのインストール/選択/適用が完了したことなります。
確認作業
ここまでの作業が完了したら念のため、
- python -Vでglobalに設定したバージョンが表示されること
- which pythonで表示されるパスがpyenv配下となっていること
をそれぞれ確認しておきましょう。
virtualenv
次にpythonの仮想開発環境を構築するためにvirtualenvのインストールを行います。
仮想環境といってもそこまで大仰なものではなく、パッケージのインストール先をプロジェクト配下にまとめておくくらいのイメージです。
インストール
早速以下のコマンドでPCにvirtualenvをインストール。pipはRubyでいうGemのようなもので、Pythonのパッケージを管理してくれるツールです。
pip install virtualenv
インストールが完了したら、pip listで現在インストールされているパッケージをpip listで確認してみましょう。virtualenvが追加されているはずです。
仮想環境の作成
今回はPythonの軽量Webフレームワークであるflaskのプロジェクトを作成するケースで手順を紹介していきます。Djangoであったり、その他フレームワークでも基本は変わりません。
まずはディレクトリの作成と移動。このディレクトリ内で開発を行っていきます。
mkdir flask-sample cd flask-sample/
この作成したディレクトリ配下にPythonの仮想環境を作成します。
virtualenv flask-sample-virtual
仮想環境の有効化
そうすると現在のディレクトリ内に、仮想環境用のディレクトリが作成されますので、以下のコマンドで有効化します。
source flask-sample-virtual/bin/activate
そうするとターミナルの入力行の先頭に(flask-sample-virtual)という表示がされます。
この(flask-sample-virtual)が表示されている間は、flask-sample-virtualにインストールされたPythonパッケージがインストールされる、ということになります。
パッケージのインストール
ではflaskをインストールしてみます。
pip install flask
特にコマンドに特別なオプションは不要です。気をつけるべきは(flask-sample-virtual)という表示が入力行の先頭に存在しているか、のみです。
flaskと依存パッケージが仮想環境配下にインストールされているかを、再度listで確認してみましょう。
pip list
仮想環境の終了
以下のコマンドで有効化していた仮想環境を終了することができます。
deactivate
そしてもう一度pip listを。
pip list
仮想環境を抜けるとflaskで追加されたライブラリがなくなっていることが確認できますね。
ここまで確認できれば、virtualenvが問題なく導入できたことになります。
まとめ
Rubyと異なり、デファクトスタンダードというものが存在していないPythonの開発環境構築について、自分なりに使いやすく、仕組みを理解しやすいpyenvとvirtualenvを利用した手順を紹介しました。
あんまり環境構築に時間かけすぎてもアレなので、初心者の方は今回の手順で試してみて、調べるうちにもっといいものを見つけたら、導入する。といった形で学習を進めてみてはいかがでしょうか。
閲覧いただき、ありがとうございました。