借金エンジニア

借金エンジニアのブログです。

【Python】pyenv と virtualenv


スポンサードリンク

借金エンジニアです。

本ブログで一番アクセスがある記事はこちらの記事です。

www.shakkinengineer.com

R言語でCSVを結合する方法、スクリプトを紹介した記事です。
「R言語 CSV」で検索すると、そこそこ上位に出てくるので、そのおかげかもしれません。

R言語で需要があるなら、Pythonでも需要があるのではないかと思い、PythonでもCSVを結合する記事を書こうかと思いましたが、まずは環境構築から。

Pythonの環境を準備する中でややこしかったことを勉強がてら、まとめてみたいと思います。

プログラムミングのハードルの9割以上はこの環境構築にあるんじゃないかと個人的には思っています。
(環境構築って言葉が何となく嫌い)

具体的に言うと pyenv と virtualenv についてです。

pyenvとvirtualenv

※かなり自信の無い記事です。誤った情報があるかもしれませんが、ご了承ください。

pyenvとは?

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

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

私はMacを使っていますが、MacにはデフォルトでPython2.X系がインストールされていました。

新しくPythonを始めるなら、Python3.X系を使いたいですよね。
ということで、Python3.Xをインストールして、切り替えれば良いのですが、調べていてなんか面倒臭くなったので、便利なツールpyenvの力をお借りすることにしました。

簡単だったので、わざわざ入れ替えるよりは、pyenvを使ってバージョンを切り替えた方が楽だと思います。

virtualenvとは

virtualenvは、Pythonの仮想的な実行環境を作ることができるパッケージ・ソフトウェア、のようです。

(パッケージ、ライブラリ、フレームワーク、モジュール、プラグイン、この辺の言葉が嫌いです)

とある事情で、私はvirtualenvを使うことが必須でしたので、仮想的な実行環境が必要だったわけではありませんが、ローカルの開発環境はごちゃごちゃしやすいので、仮想的に環境を分けられるメリットは多くの人が享受できるのではないかと思います。

ややこしいと思った理由

pyenv-virtualenv」とか「virtualenvwrapper」とか、ややこしい名前のツールが多いから。

pyenv」も「virtualenv」も「pyenv-virtualenv」も「virtualenvwrapper」も全部別のツール

詳しく調べていませんが、「pyenv-virtualenv」は「pyenv」のプラグインで、機能的には「virtualenv」とほぼ同じ
virtualenvwrapper」は「virtualenv」を使い易くするツールのようです。

virtualenvをインストール」と書いていて、実際には「pyenv-virtualenvをインストール」しているような記事もいくつか見つかります。

ほら、ややこしいでしょ。

インストールしよう

Macへのインストールになります。ご了承ください。

pyenv

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

下記のサイトにインストール方法が書いてあります。 brew.sh ターミナルアプリで1行実行するだけで、インストールできます。

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

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

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

まずが現在のPythonのバージョンを確認してみましょう。

python -V

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

次にPython 3.6.6をインストールします。

pyenv install 3.6.6

最後にインストールしたバージョン3.6.6に切り替えます。

pyenv global 3.6.6

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

virtualenv

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

cd ~/my_project

※フォルダー名は適宜変更してください

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

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

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

[pythonがインストールされているフォルダー]はwhich pythonコマンドで確認できます。
pyenvを使用している場合は、どのバージョンになっていても同じフォルダーになるはずです。

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

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

source my_env/bin/activate

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

(my_env) $

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

おわりに

pyenvはPythonのバージョンを簡単に切り替えられるので、こちらは良さが伝わりやすいのではと思いますが、virtualenvに関しては、私自身もまだ恩恵を受けていないので、使うと何が良いのかを全然伝えられていないように思います。 (そもそも理解できていない)

勉強します。

がんばります。

とりあえず、次はPythonでCSVを結合します。

以上です。
読者登録していただけると励みになりますので、ぜひお願いいたします。

ブログ村のリンクもクリックしていただけると、さらに励みになりますので、ぜひぜひお願いいたします。
ブログランキング・にほんブログ村へにほんブログ村