Python-pyenvとvenvという「見えない基盤」 ― 環境が問題になる理由と、途中で必須になった道具

目次

Python-pyenvとvenvという「見えない基盤」

Pythonを使って何かを作ろうとしたとき、最初につまずきやすいのが「環境」の問題だ。 ライブラリが動かない、バージョンが合わない、昨日まで動いていたコードが今日は動かない。

それらの多くは、コードそのものではなく、 Pythonをどう管理しているかに原因がある。 pyenvとvenvは、この問題を静かに、しかし確実に解消するための道具だ。

Pythonの「環境問題」はどこで起きるのか

多くの場合、問題は次の瞬間に発生する。

pip install ○○

この一行を、どのPythonに対して実行しているのか。 それを意識しないまま作業を続けると、 環境は少しずつ歪んでいく。

ただし、最初から問題が起きるわけではない。 むしろ、しばらくは何事もなく動く。

かつては、pip install で十分だった

Pythonの初期の使われ方は、もっとシンプルだった。

  • Pythonは1つだけ
  • プロジェクトも1つ
  • 短いスクリプトや個人用途が中心

この前提では、

pip install ○○

で何の問題も起きない。 実際、それで十分だったし、それが正解だった。

当時は、Pythonの環境を「管理する」という発想そのものが、 あまり必要とされていなかった。

前提が変わり、問題が見えるようになった

その後、Pythonの使われ方は大きく広がっていく。

  • Webアプリケーション
  • AI・機械学習
  • 長期間動かし続けるツール

プロジェクトは増え、Pythonのバージョンも増えた。 変化は速く、すべての人が同じ足並みで進むわけではない。

問題は、ある条件を超えたときにだけ、突然姿を見せる。

pyenv ― Pythonそのものを切り替える

pyenvは、Python本体のバージョン管理を行うツールだ。 Pythonが一つであるという前提が崩れたあと、 必要になってきた道具とも言える。

Pythonをインストールする

pyenv install 3.12.1
pyenv install 3.9.18

これで、同一マシン上に複数のPythonが共存する。 OS標準のPythonには一切触れない。

プロジェクトごとにPythonを固定する

pyenv local 3.12.1

このディレクトリ以下では、自動的にPython 3.12.1が使われる。

python --version

と打つだけで、今どのPythonが使われているかが分かる。 Pythonの「バージョン問題」は、ここでほぼ終わる。

venv ― ライブラリの世界を分離する

次に必要になるのがvenvだ。 これは、ライブラリ単位で環境を分けるための仕組みである。

仮想環境を作成する

python -m venv .venv

これで、.venv という独立したPython環境が作られる。

仮想環境を有効化する

source .venv/bin/activate

(Windowsの場合は .venv\Scripts\activate

有効化すると、ターミナルの表示が変わる。 これは「今はこのプロジェクト専用の世界にいる」という合図だ。

pyenv × venv が生む、静かな安心感

整理すると、流れはこうなる。

  • pyenvで「どのPythonを使うか」を決める
  • venvで「どのライブラリ世界を使うか」を分ける

この構造を一度作ってしまえば、 環境は混ざらず、壊れても戻れる。

それは、派手な解決ではない。 だが、長くPythonを使い続けるうえで、 確かな安心感を与えてくれる。

まとめ ― 途中で必須になる基盤

一つのPythonを使い続けて、何も困らない人もいる。 それはそれで、正しい。

一方で、ある地点を超えたとき、 環境を整理する必要に迫られる人もいる。 そのとき初めて、pyenvやvenvは意味を持つ。

Pythonの環境管理に、万能の正解はない。 ただ、変化の速い世界で作り続けるための 見えない基盤として、 pyenvとvenvは静かに支えている。

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

コメント

コメントする

目次