DebianからでもLinuxbrew(Homobrew on Linux)でサクッとpyenvを導入してPython環境を整える
※ 当ページには【広告/PR】を含む場合があります。
2023/08/15
Linuxから直にPythonを扱いたい場合、aptなどのパッケージマネージャからでもpythonをインストールするのがもっとも手っ取り早い方法でしょう。
これに対して、pythonのバージョンを気にするなら、
LinuxOSへのpyenvのインストールは、GitHubのレポジトリからプロジェクトをクローンして、ソースコードビルドするのが基本的な方法になっています。
ソースコードビルドだと、ビルド依存性のあるライブラリをいくつかインストールする必要もあり少し手間なので、
LinuxBrewからpyenvをインストール
LinuxBrewの導入に関しては、各Linuxディストロで導入手順が違うので、詳しくは公式のやり方をご覧ください。
ここではすでに
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
$ 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
$ 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も導入されています。