PC環境一覧
OS:Mac OS[Monterey]
CPU:Intel Core i7
Memory:32GB
Python:3.9.4
pip:22.0.3
OS:Windows11
CPU:Intel® Core™ i9 13900KF
Memory:64GB
Python:3.11.2
pip:20.2.3
■ 初めに
仮想環境とは、PC内に Python環境を仮想的に構築することです。
とはいっても、初見の場合は難しいと思うので以下で詳しく解説します。
□ 仮想環境とは?
Pythonで開発をする際に必須なのが、pipというパッケージ管理ツールです。
そのため、仕様に応じて必要なパッケージをインストールしていくことになります。
もちろん、開発に必要なのでインストールすることには全く問題ありません。
では、何が問題かについて考えてみましょう。
仮想環境を使用していない場合、インストールしたパッケージは、システム全体の Python環境に格納され、以下のような悪点が挙げられます。
- パッケージの競合
- システム全体の Python環境に複数のバージョンの同じパッケージをインストールすると、バージョンの競合が発生しやすくなります。
これにより、アプリケーションの動作に影響が出る可能性があります。
- システム全体の Python環境に複数のバージョンの同じパッケージをインストールすると、バージョンの競合が発生しやすくなります。
- セキュリティリスク
- システム全体のPython環境にパッケージをインストールすると、不正なパッケージがシステムに侵入するリスクも高まります。
仮想環境を使用すれば、このようなリスクを軽減できます。
- システム全体のPython環境にパッケージをインストールすると、不正なパッケージがシステムに侵入するリスクも高まります。
- 開発環境の一貫性の維持
- 異なるプロジェクト間で異なるバージョンのパッケージを使用すると、開発環境の一貫性が保たれなくなります。
仮想環境を使用すれば、各プロジェクトごとに必要なパッケージのバージョンを厳密に制御できます。
- 異なるプロジェクト間で異なるバージョンのパッケージを使用すると、開発環境の一貫性が保たれなくなります。
- プロジェクト移行時の困難
- プロジェクトを他の開発者や新しいPCに移行する際に、システム全体の Python環境に依存している場合、移行が困難になることがあります。
仮想環境を使用すれば、プロジェクトとその依存関係を一元的に管理でき、移行が容易になります。
- プロジェクトを他の開発者や新しいPCに移行する際に、システム全体の Python環境に依存している場合、移行が困難になることがあります。
- メンテナンスの困難
- システム全体の Python環境にパッケージをインストールすると、システム全体のメンテナンスが難しくなる可能性があります。
特に、大規模なシステムでは、どのパッケージが何のためにインストールされているかを追跡するのが困難になることがあります。
- システム全体の Python環境にパッケージをインストールすると、システム全体のメンテナンスが難しくなる可能性があります。
[1]仮想環境の構築(venv)
python -m venv .venv
Macの場合
python3 -m venv .venv
[2]仮想環境の有効化
$ start .venv/Scripts/activate
# 実行後、以下のようになっていたら OK
(.venv) $
Macの場合
$ source .venv/bin/activate
□ 仮想環境のイメージ図
上図に示すように、PC内で新たに Python環境が構築されます。
そのため、プロジェクトが不要になった場合などは、仮想環境のディレクトリごと削除することで一式すべて一掃することができます。
[3]pipコマンドの使い方
[3.1]パッケージインストール
$ pip install [パッケージ名]
---
# バージョンを指定してインストールすることも可能
$ pip install [パッケージ名==x.xx.x]
[3.2]パッケージアンインストール
$ pip uninstall [パッケージ名]
[3.4]インストールされているパッケージ確認
$ pip freeze
---
# freezeコマンドは、仮想環境を共有する時にも使用することができる。
# 現状は下記にコマンドのみ記載し、使い方はまた別の記事で解説する。
$ pip freeze > requirements.txt
[4]仮想環境の無効化
$ deactivate
[*]pipがなかったり、うっかり誤って削除してしまった方用
[*.1]pipのバージョン確認
$ pip -V
---
# 筆者の場合 Pythonのバージョン管理も行っているので皆さんと場所が違うかも
pip 20.2.3 from c:\users\username\.pyenv\pyenv-win\versions\3.9.4\lib\site-packages\pip (python 3.9)
Macの場合
$ which pip
---
/Library/Frameworks/Python.framework/Versions/3.9/bin/pip
[*.2]pipをインストールするヤツをインストール
Python内にデフォルトで存在している ensurepip
モジュールを使用して pipのインストールを行います。
$ python -m ensurepip --upgrade
Macの場合
$ python3 -m ensurepip --upgrade
[*.3]pipをインストール
[*.2]pipをインストールするヤツをインストールを実行すると、get-pip.py
がダウンロードされます。
(すみません、どこにかまで覚えていません。)
それを実行します。
$ cd [ヤツ(get-pip.py)がある場所まで移動]
$ python get-pip.py
Macの場合
$ cd [ヤツ(get-pip.py)がある場所まで移動]
$ python3 get-pip.py
[*.1]pipのバージョン確認を再度実行して、pipのバージョンが表示されるかを確認してください。
最後に
お疲れ様でした。
comment 📝