DebianからでもLinuxbrew(Homobrew on Linux)でサクッとpyenvを導入してPython環境を整える


※ 当ページには【広告/PR】を含む場合があります。
2023/08/15



Linuxから直にPythonを扱いたい場合、aptなどのパッケージマネージャからでもpythonをインストールするのがもっとも手っ取り早い方法でしょう。
これに対して、pythonのバージョンを気にするなら、
「pyenv」 を利用する方も多いでしょう。

Simple Python Version Management: pyenv

LinuxOSへのpyenvのインストールは、GitHubのレポジトリからプロジェクトをクローンして、ソースコードビルドするのが基本的な方法になっています。
ソースコードビルドだと、ビルド依存性のあるライブラリをいくつかインストールする必要もあり少し手間なので、
「LinuxBrew」 から一括導入する手順を説明します。

Homebrew on Linux

LinuxBrewからpyenvをインストール



LinuxBrewの導入に関しては、各Linuxディストロで導入手順が違うので、詳しくは公式のやり方をご覧ください。

Install Homebrew

ここではすでに
brew コマンドが使える前提で話を進めていきます。

            $ brew update
$ brew install pyenv
$ pyenv -v
pyenv 2.3.24

        

いとも簡単にpyenvが導入されました。
インストールが完了したら、インストールされたパッケージを確認してみます。

            $ brew list
autoconf     ca-certificates  m4    perl    readline
berkeley-db  expat      libffi    ncurses    pkg-config   xz
bzip2     gdbm     libxcrypt  openssl@3  pyenv   zlib

        

pyenvだけでなく、他の依存性のあるプログラムを一括して導入されていることがわかります。


pyenvからpythonを導入できるかチェック



LinuxBrewからちゃんとpythonが使えるか動作確認を行ってみます。
インストール可能なpythonバージョンのリストを覗いてみましょう。

            $ pyenv install --list

        

すべて表示させると結構なボリュームになるので、例えば
3.8系 に絞って表示させてみます。

            $ pyenv install --list | grep 3.8.
  3.8.0
  3.8-dev
  3.8.1
  3.8.2
  3.8.3
  3.8.4
  3.8.5
  3.8.6
  3.8.7
  3.8.8
  3.8.9
  3.8.10
  3.8.11
  3.8.12
  3.8.13
  3.8.14
  3.8.15
  3.8.16
  3.8.17

        

一例として、ここではpyenvに
3.8.17 を指定してインストールします。

            $ pyenv install 3.8.17

#👇インストール済みのpythonのバージョンを確認
$ pyenv versions
* system (set by /home/*****/.pyenv/version)
  3.8.17

        

pyenvに導入したpythonによってグローバル・ローカルごとにバージョンを細かく管理することができます。
例えば先ほどインストールした
3.8.17 をグローバル指定に変えるには、

            $ pyenv global 3.8.17

$ pyenv versions
  system
* 3.8.17 (set by /home/******/.pyenv/version)

        

となって、アクティブを意味する
「*」 が切り替わります。
もし、特定のフォルダ内でのみ、特定のpythonバージョンを使いたいなら、例えば
3.10.2 をpyenvにインストールしてから、

            $ cd /home/user/hoge
$ pyenv local 3.10.2
$ pyenv versions
  system
  3.8.17
* 3.10.2 (set by /home/******/.pyenv/version)

        

などとすると、特定のフォルダ(ここでは
/home/user/hoge )以下でのみ、 3.10.2 が動作します。

トラブルシュート〜「python: コマンドが見つかりません」



pyenvからグローバル・ローカルでpythonを切り替えて、シェルから早速使おうとした場合、

            $ python --version
bash: python: コマンドが見つかりません

        

というような表示が出るかもしれません。
このような場合、ターミナルがbashのケースなら
.bashrc 等に環境変数を設定する必要があります。

Set up your shell environment for Pyenv
            $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc

        

設定を反映後、以下のようにpythonのバージョンが表示されていればOKです。

            $ python --version
Python 3.8.17
$ pip --version
pip 23.0.1 from /home/*****/.pyenv/versions/3.8.17/lib/python3.8/site-packages/pip (python 3.8)

        

ちなみに、最適バージョンでpipも導入されています。