見出し画像

Ubuntuへのpyenv-virtualenvのインストールと使い方をまとめておく。他のディストリビューションでもいけると思う

Pythonってpipを使って簡単にモジュールをインストールできるので、ついついいろんなものをインストールしすぎて、何が何だか分からなくなることありますよね。

また、いろんなものが入りすぎていると、エラーが起きたときに原因が特定しにくいというデメリットもあります。

そんなときに便利なのが、pyenvなどのPythonの仮想環境を作ってそこに使いたいモジュールをインストールしていくというやり方。pyenvだけだとバージョンを複数入れられるだけなのですが、pyenvにvirtualenvというものを追加してやることで、1つのバージョンから複数の仮想環境を作ることができます。

例えば、jupyter notebookを使いたいけど、今の環境を汚したくない。といったときは、jupyterを使う専用の仮想環境を作って、使いたいときに適宜切り替えて使う。ということができるようになります。

それでは実際にインストールの仕方を見ていきましょう。

実行環境

・Windows10
・Windows Subsystem for Linux Ubuntu 20.04LTS
・shell → bash

Windows10でWSLを使ってインストールをしていきます。

gitからpyenvを拾ってくる

今回はgitのレポジトリから拾ってきます。場所は、/home/userでいいと思います。userは自分のユーザ名に置き換えてください。

% cd /home/user
% git clone git://github.com/yyuu/pyenv.git ~/.pyenv
% ls -a
.  ..  .bash_logout  .bashrc  .config  .landscape  .motd_shown  \
.profile  .pyenv  

.pyenvというディレクトリができているのがわかります。ls -a というのは -a オプションを付けることで、先頭にドット「.」のついたディレクトリも表示してくれるオプションです。

gitで持ってくるとバイナリ形式の実行ファイルをそのまま持ってきてくれるので楽ちんです。その代わりに、.bashrcなどにパスの設定を書いておく必要があります。

~/.bashrcまたは~/.bash_aliasesに以下の内容を追記しておきましょう。

 #pyenv 
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

追記をして保存したら再読み込みするのを忘れないでください。

% source ~/.bash_aliases

使いたいバージョンのPythonをインストール

次に使いたいPythonのバージョンを選択してインストールをしていきます。pyenv install --list とするとインストールできるバージョンのリストがばーーーと表示されます。今回は、「anaconda3-5.3.1」をインストールしてみます。

% pyenv install --list
Available versions:
 2.1.3
 2.2.3
 2.3.7
~~~~~~~~
% pyenv install anaconda3-5.3.1
Downloading Anaconda3-5.3.1-Linux-x86_64.sh.sh...
-> https://repo.continuum.io/archive/Anaconda3-5.3.1-Linux-x86_64.sh
Installing Anaconda3-5.3.1-Linux-x86_64.sh...
Installed Anaconda3-5.3.1-Linux-x86_64.sh to /home/user/.pyenv/versions/anaconda3-5.3.1

こんな感じで簡単にインストールができます。ちゃんとインストールされたか確認してみましょう。whichでpythonのPATHを調べて、実行してみます。

% which python
~/.pyenv/shims/python
% python
Python 3.7.0 (default, Jun 28 2018, 13:15:42)
[GCC 7.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

問題なく実行できました。whichの結果を見てみると、~/.pyenv/shims/pythonの中に実行ファイルが置いてあるのがわかりますね。

pyenv-virtualenvのインストール

pyenv-virtualenvはpyenvの拡張機能的なものです。pyenvでインストールしてあるバージョンのpythonから仮想環境を好きなだけ作れます。

インストールは、これまたgitから拾ってきます。

% git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

例のごとく、.bashrcまたは.bash_aliasesに以下の内容を追記してください。

eval "$(pyenv virtualenv-init -)"

これまたソースを忘れないでください。

% source ~/.bash_aliases

virtualenvを使った仮想環境の構築

では、jupyterを使うための仮想環境を作ることを想定して実際にやってみましょう。anacondaに最初から入ってるんですけどね。。。。

% pyenv virtualenv anaconda3-5.3.1 jupyter
Solving environment: \

anaconda3-5.3.1 が元にするバージョン
jupyterが作成する仮想環境の名前になっています。実行するとなにやらいろいろダウンロードを始めます。

仮想環境の切り替えは、全体で使う環境を切り替えたい場合は"global"、現在のディレクトリでだけバージョンを切り替えた場合は"local"と指定します。

では、~/ でローカル環境を切り替えてみます。

% pyenv local jupyter
% ls -a
.  ..  .bash_aliases  .bash_logout  .bashrc  .conda  .config  .landscape  \
.pyenv  .python-version

確認すると、.pyenv-versionというディレクトリが追加されているのが確認できます。こいつによってどのバージョンを使うかを切り替えてくれます。プロジェクトごとに環境を使い分けたい、なんていうときに設定しておくと便利ですね。

作った環境の消し方

環境がなんかバグったから消して最初から構築したい。。というときもあるでしょう。そんなときのために環境の消し方を紹介しておきます。

% pyenv unistall jupyter
pyenv-virtualenv: remove /home/user/.pyenv/versions/anaconda3-5.3.1/envs/jupyter? y

本当に消していい?ときかれるのでyと打ってEnterを押してあげましょう。

ちなみに、作った環境は.pyenv/versionsの中にあるので、消したい環境のディレクトリを全削除しても消せます。エラーがでて消せないとかなった時の最終手段として覚えておいてください。

まとめ

pyenv-virtualenvの使い方を紹介しました。こんなん、「必要ないでしょ~」とか思っててもpythonを使っているうちに、「やっぱこれいるわ。」となるやつです。

いろいろぶち込んで手が付けられなくなる前に、インストールしてスマートに環境を構築していきましょう。




この記事が気に入ったらサポートをしてみませんか?