python3の開発環境の用意方法についてメモしておきます.巷ではpyenvだのvirtualenvだのvenvだのキーワードが多すぎて私にとっては実につらいです.できればデファクトスタンダードの手順を採用したい,緩やかな(PC)環境保護指向なので新しいツールは出来る限り利用したくありません.ここで紹介するpython3開発環境の用意方法は,このページを見るくらいの人であれば必要十分な環境だと思います.
homebrew
環境前提ですが,Python3インストール以外は他の環境でも同じだと思います.
開発用環境構築
Python3のインストール
homebrewを用いてインストールします.
$ brew install python3 $ python3 --version # -> 3.6.1 $ pip3 --version # -> pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)
これで終わりです.下の2行はバージョンの確認をしています.出力結果はインストールした時期によって異なります.
仮想環境の作成
Pythonはパッケージのバージョン違いで悲劇が起こりやすいので,プロジェクト毎に環境を分離するのが普通です.virtualenv
というPythonの仮想環境管理するツールがありますが,Python3には既にvenv
というほぼ同様のものがあるのでインストールする必要がありません.virtualenv
は先程インストールしたpip3
を使ってsudo -H pip3 install virtualenv
とすればインストールできますが,インストール先が/usr/local/bin/
になりhomebrew
と混じってしまい非常につらいです.
ここではpytest
という開発環境を用意してみます.
$ mkdir pytest $ python3 -m venv pytest
このコードではpytest
ディレクトリに仮想環境の初期化を施しています.git init
の・ようなものです.
中身を見ると以下のようになっています.
$ cd pytest $ ls -a # -> bin/ include/ lib/ pyvenv.cfg
仮想環境の作成についてはこれで全てです.以下,使い方になります.
使い方
仮想環境の有効化
ここまでで仮想環境を用意できました.有効化するには次のようにします.
$ source bin/activate (pytest)$ # 入力欄の前に仮想環境の名前が追加される
仮想環境内にいることの確認
これでPythonの仮想環境の中に入れました.このディレクトリが一つのプロジェクトでPython的に分離されています.次のようにすれば確認できます.
(pytest)$ python --version # -> Python 3.6.1 (pytest)$ which python # -> /path/to/pytest/bin/python (pytest)$ pip --version # -> pip 9.0.1 from /path/to/pytest/lib/python3.6/site-packages (python 3.6) (pytest)$ which pip # -> /path/to/pytest/bin/pip
これまでに付けていた3
という数字を付けていません.macではpython
はpython2
となっていますが,仮想環境ではpython
でpython3
を使うことができます.
仮想環境から出る方法
仮想環境から出るには自分でコマンドを実行します.
(pytest)$ deactivate $ # $の前の仮想環境の名前がなくなる
最後に
この方法だとPython自体のバージョンを固定できません.しかし,そもそも手元の環境に作る緩い感じであればそれほど細かく分ける必要はないと思います.本当に動作確認をするのであればdockerなどを用いてミドルウェアなどの周辺までバージョンを固定した本番環境と同じにするのが後々楽だと思います.