LinuxにPython開発環境を構築する(venv・pyenv対応)

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-devzlib1g-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を壊さない
  • プロジェクト間の競合を防ぐ
  • 再現性の高い開発環境を構築できる

ようになります。

タイトルとURLをコピーしました