Pythonの仮想環境について【初心者向けの記事】
欽ちゃんの仮装大賞って、
今年で100回記念らしいですね。
仮装してみたいという願望はあります。
こんにちは、
ワニかず@40歳 出戻りエンジニアです。
第100回全日本仮装大賞は
2025年1月13日午後7時から3時間特番で
放送されるそうです。
ということで、今回は、
「Pythonの仮想環境」について、
今まで自分が見ないようにしてきた(おい)
「何がどう仮想化されているのか」
などについて、まとめたいと思います。
こういった類の環境構築って
一度やって開発できる状態になると、
「よくわからんけど開発できるからいいや」
な感じになりがちで、
Pythonの仮想環境については
目を逸らしてきました(笑)
転職先ではDjangoで開発を行う
ということなので、
真面目に理解しようと努力した軌跡を残したいと思います。
(自分が忘れるから、だけの説もあり)
この記事は完全に初心者向けの記事になっています。
Pythonでの開発に熟練の方には
全く刺さらない内容ですのでご容赦ください。
また、初心者のまとめですので、
誤りがありましたら是非ご指摘ください。
Pythonの仮想環境 何が仮想化されている?
Pythonで仮想環境を構築すると
- Pythonインタープリタ
- パッケージ環境
が仮想化されます。
初心者からすると、
「日本語でOK」
な状態だと思います。
全く理解できないよね。
私このClaude様の回答を見て発狂したので、
もう少しかみ砕いて説明しようと思います。
Pythonインタープリタとは?
私は、
「Pythonインタプリタの実体」
をつかんだ方が理解が進みました。
「Pythonインタプリタ」とは
ただの実行ファイルです。
Windowsの場合、例えば、ここにインストールされる
C:\Users\YourName\AppData\Local\Programs\Python\Python312\python.exe
の「python.exe」(実行ファイル、exeの拡張子のファイル)
が「Pythonインタプリタ」であり、
macOS/Linuxの場合、例えば、ここにインストールされる
/usr/local/bin/python3
の「python3」
が「Pythonインタプリタ」です。
そして、「python.exe」もしくは「python3」が
人間が書いたPythonコードを
コンピュータが理解できる形に変換し、
実行する「通訳者」のような役割
を担う、つまり
「インタプリタ」としての役割を担っているのです。
パッケージ環境とは?
Pythonで使用する外部ライブラリ(追加の機能)と
その設定が保存されている場所のことで、
Pythonの環境を構築すると多用する
pip install ○○
という呪文でインストールすることができます。
Chromeを使っている人は
拡張機能(プラグイン)
みたいなイメージでいいんじゃないでしょうか。
Pythonを仮想環境にすると?
Pythonインタープリタ&パッケージ環境
の様々な組み合わせを
自分のPC内に複数作ることができる
という利点がある、
という理解でいいかなと思います。
Claudeによる詳しいまとめによると
- プロジェクト毎の独立性
- 異なるプロジェクトで異なるバージョンのパッケージやPythonを使用できます
- 例:プロジェクトAではaが必要だが、プロジェクトBではbが必要、という場合に対応できます
- 依存関係の競合を防ぐ
- パッケージ間の依存関係の競合を防げます
- システムのPython環境を汚さず、クリーンな状態を保てます
- 再現性の確保
- requirements.txtという便利機能で使用パッケージのバージョンを固定できます
- 他の開発者と同じ環境を簡単に共有できます
- 容易な環境管理
- 不要になった環境は簡単に削除できます
- 環境を新しく作り直すのも簡単です
Python仮想環境 具体的なフォルダの例
私の場合、実際のフォルダ構成を
視覚的に認識した方が理解がしやすかったので、
Windowsでの Python環境の構造について示してみます。
システム全体のPython環境(仮想化されていない環境)の例。
C:\
└── Python39\ # バージョン番号によって異なります
├── python.exe # Pythonインタープリタ
├── Lib\ # 標準ライブラリ
│ └── site-packages\ # インストールされたパッケージ
└── Scripts\ # 実行ファイル(pip等)
仮想環境(例:myenv という仮想環境を作った際)の例
Copyプロジェクトフォルダ\
└── myenv\ # 仮想環境フォルダ(名前は任意)
├── Scripts\
│ ├── python.exe # 仮想環境用のPythonインタープリタ
│ ├── pip.exe # 仮想環境用のpip
│ └── activate # 仮想環境を有効化するスクリプト
└── Lib\
└── site-packages\ # 仮想環境用のパッケージ保存場所
仮想環境を作成すると、
システムのPythonインタープリタがコピーされ、
独立した環境が作られます。
pip installなどのパッケージインストールは:
仮想環境が無効時 → システムのsite-packagesにインストール
仮想環境が有効時 → 仮想環境のsite-packagesにインストール
仮想環境を削除したい場合は、
単純にmyenvフォルダを削除するだけで完了します。
これにより、プロジェクトごとに
独立したPython環境を管理できます。
Python仮想環境の作り方
環境によって微妙に異なりますが、
基本的な部分は一緒です。
Windows
コマンドプロンプト(cmd)または PowerShell で実行
例:
cd C:\Users\YourName\projects\python_project
python -m venv myenv
macOS/Linux
ターミナルで実行
例:
cd /home/username/projects/python_project
python3 -m venv myenv
WSL2(Windows上のLinux)
WSL2のターミナルで実行
例:
cd /mnt/c/Users/YourName/projects/python_project
python3 -m venv myenv
これらによって、
python_projectフォルダの下に、
仮想環境フォルダ「myenv」ができる、というわけです。
python_project/ # プロジェクトのルートディレクトリ
└── myenv/ # 作成された仮想環境フォルダ
├── Lib/ # Windows の場合
├── lib/ # macOS/Linux の場合
├── Scripts/ # Windows の場合
├── bin/ # macOS/Linux の場合
├── include/
└── pyvenv.cfg
Python仮想環境を有効にする
前項で記載したように、
python_projectフォルダで、
myenvという仮想環境を構築した場合は、
以下のようなコマンドを実行します。
Windows(コマンドプロンプト/PowerShell)
myenv\Scripts\activate
macOS/Linux(ターミナル)
source myenv/bin/activate
WSL2(Windows上のLinux)
source myenv/bin/activate
で有効になり、有効化後は、
プロンプトの先頭に (myenv)
と表示されていれば、仮想環境が有効になっている証拠です。
なお、有効化後は
どのディレクトリに移動しても
- ターミナルを閉じるか
- deactivateコマンドを実行するまで
その仮想環境のパッケージが使用可能です
まとめ
今回は、Pythonの仮想環境の構築と、
その意味合いについてまとめてみました。
いざ、何かの環境構築をしようとすると、
訳も分からずPythonの仮想環境も同時に作って
ひとまず開発を始める、ということがある方(私)
にとって、今回の記事が何かのお役に立てば幸いです。
最後までご覧いただきありがとうございました!
Discussion