venvによる仮想環境
自分でプログラミングするなら、最新のPythonをインストールして、最新のパッケージと組み合わせて使えばいいので、簡単です。でも、特定の作業をするためには、Pythonのバージョンやパッケージのバージョンを指定しなければならないことがよくあります。あるいは、あまり有名でないパッケージを試したいけれど普段使いの環境にインストールするのは怖いと思うことがあります。このようなときに、Python標準のモジュール venv による仮想環境が役に立ちます。
あるディレクトリの中で特定の作業をするとしましょう。まずはこのディレクトリの中でターミナルに次のように打ち込みます:
python3 -m venv .venv
別バージョンのPythonを使いたいなら、絶対パスで指定します。例:
/Library/Frameworks/Python.framework/Versions/3.13/bin/python3 -m venv .venv
すると、このディレクトリの中に .venv
というサブディレクトリができます。この名前は .venv
でなくても何でもよく、場所も別のディレクトリに作ってもいいのですが、自分で流儀を決めておくとわかりやすくなります。
さて、.venv
というディレクトリには bin
というサブディレクトリができ、その中に activate
というbash/zshシェルスクリプト(およびcsh等のシェルのための同様のシェルスクリプト)ができます。bashやzshを使っているなら、
source .venv/bin/activate
と打ち込みます。するとシェルのプロンプトの先頭に (.venv)
という名前が付くようになります。この状態で python
あるいは python3
と打つと、.venv
を作る際に起動したPythonが実行されます(念のためシェルに hash -r
と打ち込むと実行ファイルのパスのキャッシュがリフレッシュされます)。また、サードパーティのパッケージはまったくインストールされていない状態になります。
このまっさらな環境で、まずは pip install ...
で必要なパッケージをインストールします。パッケージは .venv/lib/python3.xx/site-packages
以下にインストールされます。
GitHubなどで公開されたものには、どういうパッケージが必要かを書き込んだテキストファイル requirements.txt
が入っていることがよくあります。その場合は
pip install -r requirements.txt
と打ち込むだけでパッケージがインストールされます。このファイルには、例えば numpy==2.2.1
のようにパッケージ名とバージョンが行ごとに書き込まれています。
逆に、
pip freeze > requirements.txt
と打ち込めば、現在インストールされているパッケージ名とバージョンが並んだ requirements.txt
ファイルが生成されますので、これを含めて公開すれば、パッケージのバージョン違いでうまく動かないといったことが避けられます。
最後に、activate された仮想環境を抜けるには、deactivate
と打ち込みます。
仮想環境をもう使わないなら rm -rf .venv
でディレクトリごと消します。