【Python】pyenv と virtualenv

pyenv_to_virtualenv

Takuya です。

最近、本業でPythonを使い始めました。
主にRで行っていたデータの加工をPythonに切り替えただけですが、特に詰まることもなく切り替えられたので、今後はPythonを使っていこうと思っています。

今日はPythonを使用し始めるにあたり、Macに導入した pyenvvirtualenv について書きたいと思います。

pyenv とは?

pyenv は Python のバージョンを管理するためのツールです。
バージョンを簡単に切り替えられるようにするツールですね。

Python のバージョンは大きく分けて 2.X系 と 3.X系 がありますが、互換性がありません。 そのため、バージョンを切り替えたい場面が多いのでしょうか。

virtualenv とは?

virtualenv は Python の仮想的な実行環境を作ることができるソフトウェアです。

仮想的な実行環境が必要だったわけではないのですが、とある事情で、 virtualenv が必要だったため使い始めました。

ローカルの開発環境はごちゃごちゃしやすいので、仮想的に環境を分けられるメリットは多くの人が享受できるのではないかと思います。

インストールしよう

さっそくインストールしてみましょう。

今回は Mac へのインストールです。

pyenv

pyenv のインストールは Homebrew を使います。

Homebrew は Mac 用のパッケージマネージャーで、Mac で使えるツールを簡単にインストールするためのソフトウェアです。

下記サイトに Homebrew のインストール方法が書かれています。
ターミナルアプリでコマンドを1行実行するだけで、インストールできます。

Homebrewはbrewコマンドで操作します。
pyenvをインストールするには次のコマンドをターミナルで実行します。

brew install pyenv

簡単ですね。ただ、インストールしただけではダメで、「パスを通す」作業が必要になります。

「パスを通す」ために、まず下記コマンドをターミナルで実行します。

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

これで完了です。

最後に動作を確認してみましょう。
次のコマンドをターミナルで実行することで、インストール可能なPythonのバージョンが確認できます。

pyenv install -l
$pyenv install -l
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4.0
  2.4.1
  2.4.2
  2.4.3
  2.4.4
  2.4.5
  2.4.6
※以下省略

virtualenv

続いて、virtualenv をインストールします。
virtualenv のインストールには pip を使用します。
pip は Homebrew の Python版です。

次のコマンドをターミナルで実行して virtualenv をインストールします。

pip install virtualenv

これで完了です。

virtualenv も動作を確認してみましょう。
次のコマンドをターミナルで実行して、virtualenv のバージョンを確認します。

virtualenv --version
$virtualenv --version
16.6.1

使ってみよう

無事にインストールできたでしょうか?
では、さっそく使ってみましょう。

pyenv

まずは pyenv です。
Python 3.6.6 をインストールして、切り替えてみます。

最初に現在の Python のバージョンを確認してみましょう。

python -V

Mac の方は 2.X.X とバージョンが表示されるはずです。

次に Python 3.6.6 をインストールします。
ここで言う「インストール」は 「pyenv で切り替えられるバージョンに 3.6.6 を追加する」という意味になります。
次のコマンドで pyenv で切り替えられるバージョンに 3.6.6 を追加します。

pyenv install 3.6.6

最後に Python 3.6.6 に切り替えます。

pyenv global 3.6.6

これで完了です。

切り替わっているかどうかはpython -Vコマンドで確認しましょう。

virtualenv

続いて virtualenv です。
まずは仮想環境を作りたいフォルダーに移動します。

cd ~/my_project
注意
フォルダー名「my_project」は適宜変更してください

次に仮想環境を作ります。
私は Python のバージョンを指定する形で作っています。

virtualenv my_env --python=[pythonがインストールされているフォルダー]

「my_env」は仮想環境名になります。

[pythonがインストールされているフォルダー]はwhich pythonコマンドで確認できます。

pyenv を使用している場合はどのバージョンになっていても同じフォルダーになるはずです。

仮想環境が作られると、仮想環境名のフォルダーが作成されます。

最後に仮想環境を有効にします。

source my_env/bin/activate

仮想環境が有効になるとターミナルのプロンプト名に仮想環境名が付きます。

(my_env) $

仮想環境はdeactivateコマンドで無効にできます。

追記)pyenvのコマンド

次のコマンドで pyenv のコマンドを確認できます。

pyenv -h
$pyenv -h
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   global      Set or show the global Python version
   shell       Set or show the shell-specific Python version
   install     Install a Python version using python-build
   uninstall   Uninstall a specific Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   version     Show the current Python version and its origin
   versions    List all Python versions available to pyenv
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme
メモ

「Some useful pyenv commands」とあるので、全部のコマンドではないようです。全部のコマンドはpyenv commandsで確認できます。

例えば、切り替えられるバージョンはpyenv versionsで確認します。

おわりに

pyenv は Pythonのバージョンを簡単に切り替えられるので、良さが伝わりやすいと思いますが、virtualenv は仮想環境を作ると、どんなメリットがあるのか、具体的に挙げてみないと、良さが伝わらないように思うので、その辺を今後追記、または別記事にしたいと思います。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です