pyenv と venv で Python 環境を使い分ける方法

pyenvvenv を使いこなすことで複数の Python のバージョンやライブラリ、パッケージを管理、切り替えて開発を進めることができます。

pyenvvenv の特徴は次のとおりです。

ツール できること
pyenv Python のバージョンを管理・切り替える
venv ライブラリやパッケージを切り替える

本記事では、pyenvvenv のインストール方法と使い方を解説します。

pyenv のインストール

pyenv とは

pyenv は、Python のバージョン管理ツールです。 これを使うことで、複数の Python バージョンをシステムに簡単にインストールし、プロジェクトごとに異なるバージョンを切り替えることができます。

pyenv のインストール

pyenv の公式サイト(github)に手順があります。

インストール方法は次のとおりです。

curl -fsSL https://pyenv.run | bash

インストールできたら、bashrcの最後尾に次の 3 行を追加します。

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"

pyenv のインストールは以上です。 再ログインすれば pyenv というコマンドが使えるようになっています。

python のインストール

前提ソフトウェアのインストール

python はコンパイルしてインストールします。 コンパイルには mekegcc が必要なので、事前にインストールしましょう。

必要なソフトウェアは次のコマンドでインストールできます。

sudo apt install libssl-dev libffi-dev libncurses5-dev zlib1g zlib1g-dev libreadline-dev libbz2-dev libsqlite3-dev make gcc

Python のインストール

Python をインストールする準備ができたので、実際に最新バージョンの Python をインストールしてみましょう。

まずは、インストール済みの Python バージョンを表示してみます。

~$ pyenv versions

- system (set by /home/xxx/.pyenv/version)

Ubuntu には標準で Python がインストールされているので、それ(system)がリストアップされました。

続けて、インストールするバージョンを決めるために pyenv でインストールできるバージョンを表示してみましょう。 大量にあるので、lessでページングするとよいです。

~$ pyenv install -l | less

2025 年の年初では 3.12.8 が最新でした。 3.12.8 をインストールするには次のコマンドを実行します。

~$ pyenv install 3.12.8
Downloading Python-3.12.8.tar.xz...
...

前提ソフトウェアをインストールできていれば、インストールは成功します。

インストールできたら、もう一度インストール済みの Python バージョンを表示してみましょう。

~$ pyenv versions

* system (set by /home/xxx/.pyenv/version)
  3.12.8

標準(system)に加えて、3.12.8が表示されましたね。

この状態だと python を実行すると、標準(system)のバージョンが使われます。 利用するバージョンを切り替えるには次のコマンドを実行します。

~$ pyenv global 3.12.8

もう一度バージョンを出力してみると、利用するバージョンが切り替わってることが確認できます。

~$ pyenv versions
  system
* 3.12.8 (set by /home/xxx/.pyenv/version)

仮想環境の作成

バージョンを切り替えれるようになったので、次は Python のライブラリやパッケージを切り替えれるようにしましょう。

Python には venv という仮想環境を作る機能が備わっています。

次のようなコマンドで仮想環境を作ることができます。 実行したときの Python バージョンで仮想環境が作成されますので、バージョンを切り替えてから実行しましょう。

~$ cd ~/workspace
~/workspace$ python -m venv .venv

最後のパラメータの名前のディレクトリに仮想環境が作られます。 仮想環境はただのファイル群です。

仮想環境はアクティベート、ディアクティベートして使います。 アクティベート方法は次のとおりで、先ほど作成した仮想環境に入っているactivateを実行するだけです。

~/workspace$ source .venv/bin/activate
(.venv) ~/workspace$

アクティベートすると、どの仮想環境に参加しているかわかりやすいように、プロンプトに仮想環境名が入ります。

仮想環境にアクティベート中はパッケージのインストールは、その仮想環境にのみインストールされます。 また仮想環境を作った直後はパッケージが pip だけのまっさらな状態になっています。

(.venv) ~/workspace$ python -m pip list
Package Version
------- -------
pip     24.3.1

試しに numpy をインストールしてみましょう。

(.venv) ~/workspace$ python -m pip install numpy

インストール済みのパッケージを出力すると numpy がインストールできていますね。

(.venv) ~/workspace$ python -m pip list
Package Version
------- -------
numpy   2.2.1
pip     24.3.1

仮想環境のディアクティベート方法は次のとおりです。

(.venv) ~/workspace$ deactivate

仮想環境からディアクティベートしたので、先ほど仮想環境にインストールしたパッケージ numpy はインストールされていない環境に戻ります。

~/workspace$ python -m pip list
Package Version
------- -------
pip     24.3.1

このようにして仮想環境を作り、アクティベート・ディアクティベートで切り替えることで、パッケージやライブラリを切り替えて開発できるようになります。

おわりに

本記事では、pyenvvenv のインストール方法と使い方を解説しました。 pyenvvenv を使いこなすことで複数の Python のバージョンやライブラリ、パッケージを管理、切り替えて開発を進めることができるようになります。

以上です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

システム開発の経歴が20年のエンジニアです。
フロントエンド(Ajax,...,React,SPA)からバックエンド(Database,...,Hadoop,PaaS)まで幅広く経験し、現在は企業に勤め、社内のITアーキテクトに就いています。

コメント

コメントする

CAPTCHA