コンテンツにスキップ

pyenv

pyenv を使うと任意のバージョンの Python をインストールしたり、異なるバージョンへ切り替えることができる。

GitHub - pyenv/pyenv: Simple Python version management

インストール (Linux)

以下に従ってビルドに必要なライブラリなどをインストールする。

Home · pyenv/pyenv Wiki · GitHub

1
2
3
sudo apt update; sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

以下に従って pyenv をインストールする。

GitHub - pyenv/pyenv: Simple Python version management

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# チェックアウトする
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ cd ~/.pyenv && src/configure && make -C src

# ~/.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

# ~/.bashrcの設定内容を反映させる
$ source ~/.bashrc

# インストールできるPython一覧を確認する
$ pyenv install --list
# PythonのX.XX.Xを後半10個取り出す
$ pyenv install --list | grep -E "^ +[0-9|\.]+$" | tail -n 10

# Python 3.13.0をインストールする
$ pyenv install 3.13.0
Downloading Python-3.13.0.tar.xz...
-> https://www.python.org/ftp/python/3.13.0/Python-3.13.0.tar.xz
Installing Python-3.13.0...
Installed Python-3.13.0 to /home/{ユーザー名}/.pyenv/versions/3.13.0

# デフォルトのPythonを3.13.0にする
$ pyenv global 3.13.0

# Pythonのバージョンを確認する
$ python --version
Python 3.13.0

# pyenvにインストール済みのバージョンの一覧を確認する
$ pyenv versions
  system
* 3.13.0 (set by /home/{ユーザー名}/.python-version)

# pythonのパスを確認する
$ which python
/home/{ユーザー名}/.pyenv/shims/python

インストール (Windows)

GitHub - pyenv-win/pyenv-win: pyenv for Windows. pyenv is a simple python version management tool. It lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.

インストール自体に管理者権限は必要ないが、ダウンロードした PowerShell のスクリプトを実行するのに実行権限が要る。ユーザーディレクトリとか権限的に問題ないディレクトリ上で以下コマンドを実行する。

1
2
3
4
> Set-ExecutionPolicy RemoteSigned
> Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"

> pyenv --version

環境変数はユーザー環境変数に自動的に追加されるが、VSCode を使っている場合は全部のウィンドウを閉じないと読み込まれない。

それでも pyenv が認識されない場合はインストールした PC を再起動する。

Python が Windows で動かないときも参照。

コマンド

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# インストールできるPython一覧を確認する
$ pyenv install -l

# Python 3.13.0をインストールする
$ pyenv install 3.13.0

# pyenvにインストール済みのバージョンの一覧を確認する
$ pyenv versions
  system
* 3.13.0 (set by /home/{ユーザー名}/.python-version)

# デフォルトのPythonを3.13.0にする
$ pyenv global 3.13.0
$ pyenv versions
* 3.13.0 (set by /home/{ユーザー名}/.python-version)

# 現在のディレクトリのPythonを3.13.0にする
# (ディレクトリ上に.python-versionが作成される)
$ pyenv local 3.13.0

# システムにインストールしているPythonに切り替える
$ pyenv global system

# 3.13.0をアンインストールする
$ pyenv uninstall 3.12.3

トラブルシューティング

WSL2 接続時にcygpath: not foundexec: cmd: not foundが出る

WSLを参照すること。

pip install時にWARNING: There was an error checking the latest version of pip.の警告が出る

以下を試したら消えた模様。

1
rm -r ~/.cache/pip/selfcheck/