見出し画像

Python_pyenvの設定手順 #206日目

pyenvを用いると、指定した特定のバージョンのPython実行環境を導入することができ、さらにディレクトリ毎にバージョンを変える等が可能になります。これにより、プロジェクトごとに適したバージョンの実行環境を用意できます。

今回は以下の環境でのpyenvのインストールから、あるディレクトリでPythonのバージョンを指定するところまでまとめてみたいと思います。


環境

WSL2 Ubuntu 22.04 LTS (Windows10)


事前準備

パッケージのアップデートとインストールを行います。

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install \
 build-essential libssl-dev zlib1g-dev \
 libbz2-dev libreadline-dev libsqlite3-dev curl llvm \
 libncursesw5-dev tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev \
 libopencv-dev git

各パッケージの意味は以下です。

libffi-dev: Foreign function interface library (FFI)
libssl-dev: Secure Sockets Layer library (SSL)
zlib1g-dev: Compression library (zip)
liblzma-dev: XZ-format compression library (pandas)
tk-dev: Toolkit for Tcl and X11 (tkinter)
libbz2-dev: high-quality block-sorting file compressor (bz2)
libreadline-dev: GNU readline and history (readline)
libsqlite3-dev: SQLite 3 development files (sqlite3)
libopencv-dev: development files for opencv (OpenCV)
build-essential: Informational list of build-essential packages (C/C++ compiler)
git: fast, scalable, distributed revision control system

https://zenn.dev/neruo/articles/install-pyenv-on-ubuntu


pyenvパッケージをgithubからクローン

ホームディレクトリでクローンします。

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv


pyenvのインストール

私の環境では以下の2ファイルを更新しています。

[.profileの頭に以下を記載]

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH" 
[.bashrcの末尾に以下を記載]

PYENV_ROOT="${HOME}/.pyenv"
PATH="${PYENV_ROOT}/bin:${PATH}"
if command -v pyenv 1>/dev/null 2>&1; then
    eval "$(pyenv init --path)"
    eval "$(pyenv init -)"
fi

後者は必須だったっぽいですが、前者は不要だったかもしれません(とりあえず動いたのでそのままにしています)。。もし分かる方がいらっしゃればご指摘いただけますと幸甚です。

次に環境変数を読み込みます。

$ source .bashrc

仕上げにshellへ再ログインして、シェル設定を再読み込みします。

$ exec $SHELL -l

ここまでエラーなしで到達すれば、pyenvを使えるようになっているはずです。

※追記:この「.bashrc」の書き方だとバージョンが上手く切り替わらないことが分かりました。以下の記事で修正方法を解説しています。


pyenvを使ってみる

バージョン確認

$ pyenv -v

#実行結果
pyenv 2.2.5 

ヘルプを確認

$ pyenv -h

#実行結果
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   --version   Display the version of pyenv
   commands    List all available pyenv commands
   exec        Run an executable with the selected Python version
   global      Set or show the global Python version(s)
   help        Display help for a command
   hooks       List hook scripts for a given pyenv command
   init        Configure the shell environment for pyenv
   install     Install a Python version using python-build
   local       Set or show the local application-specific Python version(s)
 ~(以下、略)~

また、pyenvでpythonのバージョン管理をするには、pyenv上に【管理したいpythonのバージョン】をインストールしておく必要があります。

pyenv上にインストールできるもののリストを確認

$ pyenv install --list
 
#実行結果
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4.0
 ~(以下、略)~

pyenv上にpythonの3.9.1バージョンをインストール(例)

$ pyenv install 3.9.1

インストール済みのバージョンを確認

$ pyenv versions

インストールしたバージョンを特定のディレクトリに適用

$ cd 目的のディレクトリ
$ pyenv local 3.9.1
 
# 確認
$ python --version
# 実行結果
Python 3.9.1

解除方法

$ cd 目的のディレクトリ
$ pyenv local --unset
 
# 確認
$ python --version
# 実行結果
pyenv: python: command not found


ここまでお読みいただきありがとうございました!!



参考


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