Linux環境でPython開発を行う際、「どのPythonバージョンを使うか」「プロジェクトごとにライブラリを分離したい」といった課題に必ず直面します。
本記事では、Linux上で 再現性が高く、管理しやすいPython開発環境 を構築する方法として、
- venv(標準仮想環境)
- pyenv(Pythonバージョン管理)
の2つを中心に、実践的なセットアップ手順を解説します。
この記事でわかること
- LinuxにおけるPython開発環境構築の基本方針
- venv を使った仮想環境の作成と運用方法
- pyenv によるPythonバージョン管理
- pyenv + venv を組み合わせた実践的構成
- よくあるトラブルと対処法
なぜPythonの仮想環境が必要なのか
Linuxには多くの場合、システム用Pythonがあらかじめインストールされています。
python3 --version
しかし、この システムPythonを直接使うのは非推奨 です。
理由
- OSの内部処理がPythonに依存している
- pipでライブラリを入れるとシステムを壊す可能性がある
- プロジェクトごとに依存関係を分離できない
これを解決するのが 仮想環境(venv)とpyenv です。
方法①:venvでPython仮想環境を構築する(標準)
venvとは
venvはPython標準ライブラリに含まれる仮想環境作成ツールです。
- 追加インストール不要
- Python 3.3以降で利用可能
- 軽量でシンプル
venvの基本操作
仮想環境の作成
python3 -m venv venv
仮想環境の有効化
source venv/bin/activate
有効化されると、プロンプトが次のように変わります。
(venv) user@host:~
仮想環境の終了
deactivate
venv利用時の注意点
- Pythonのバージョン自体は切り替えられない
- OS標準のPythonに依存する
→ Pythonバージョンを切り替えたい場合は pyenv が必要
方法②:pyenvでPythonバージョンを管理する
pyenvとは
pyenvは、複数のPythonバージョンを簡単に切り替えられるツールです。
- Python 3.x / 2.x を共存可能
- プロジェクト単位でバージョン指定可能
- venv と併用できる
pyenvのインストール(Ubuntu/Debian系)
依存パッケージのインストール
sudo apt update
sudo apt install -y \
build-essential \
libssl-dev \
zlib1g-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
libffi-dev \
liblzma-dev \
curl git
pyenv本体のインストール
curl https://pyenv.run | bash
シェル設定(bashの場合)
~/.bashrc に以下を追記します。
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
反映
source ~/.bashrc
pyenvでPythonをインストールする
インストール可能なバージョン一覧
pyenv install --list
Python 3.12.1 をインストール
pyenv install 3.12.1
使用するPythonを指定
グローバル指定
pyenv global 3.12.1
プロジェクト単位(推奨)
pyenv local 3.12.1
pyenv + venv の実践的構成(推奨)
最もおすすめの構成は pyenvでPythonを管理し、venvで仮想環境を切る 方法です。
手順例
# プロジェクトディレクトリ
mkdir sample-project
cd sample-project
# Pythonバージョン指定
pyenv local 3.12.1
# 仮想環境作成
python -m venv venv
# 有効化
source venv/bin/activate
ライブラリ管理
pip install requests flask
pip freeze > requirements.txt
よくあるトラブルと対処法
pyenv install が失敗する
- 開発用ライブラリ不足が原因
libssl-devやzlib1g-devを確認
which python が system のまま
which python
~/.pyenv/shims/pythonになっていない場合は.bashrc設定を再確認
venv作成時に違うPythonが使われる
python --version
- pyenvで指定したPythonが有効か必ず確認
まとめ
LinuxでのPython開発環境構築は、以下の構成が最も安定します。
- pyenv:Pythonバージョン管理
- venv:プロジェクトごとの仮想環境
- pip + requirements.txt:依存関係管理
この構成を採用することで、
- OSを壊さない
- プロジェクト間の競合を防ぐ
- 再現性の高い開発環境を構築できる
ようになります。

