【 Python 】仮想環境 venv の使い方!

python

仮想環境を構築せずに開発を行うのは勿体ない!です。

今後、開発を進めていく上で動かなくなるツールが出てくる可能性があります。
また、クライアントにアプリケーションを配布をする際に、保有しているパッケージ等を全て圧縮かけるため『 ファイルサイズが大きく + 容量も重く 』なります。(詳細は後述)

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環境に格納され、以下のような悪点が挙げられます。

  1. パッケージの競合
    • システム全体の Python環境に複数のバージョンの同じパッケージをインストールすると、バージョンの競合が発生しやすくなります。
      これにより、アプリケーションの動作に影響が出る可能性があります。
  2. セキュリティリスク
    • システム全体のPython環境にパッケージをインストールすると、不正なパッケージがシステムに侵入するリスクも高まります。
      仮想環境を使用すれば、このようなリスクを軽減できます。
  3. 開発環境の一貫性の維持
    • 異なるプロジェクト間で異なるバージョンのパッケージを使用すると、開発環境の一貫性が保たれなくなります。
      仮想環境を使用すれば、各プロジェクトごとに必要なパッケージのバージョンを厳密に制御できます。
  4. プロジェクト移行時の困難
    • プロジェクトを他の開発者や新しいPCに移行する際に、システム全体の Python環境に依存している場合、移行が困難になることがあります。
      仮想環境を使用すれば、プロジェクトとその依存関係を一元的に管理でき、移行が容易になります。
  5. メンテナンスの困難
    • システム全体の Python環境にパッケージをインストールすると、システム全体のメンテナンスが難しくなる可能性があります。
      特に、大規模なシステムでは、どのパッケージが何のためにインストールされているかを追跡するのが困難になることがあります。

[1]仮想環境の構築(venv)

python -m venv .venv
Macの場合
python3 -m venv .venv

仮想環境名(上記では .venv)は任意の名前を付けられます。

[2]仮想環境の有効化

$ start .venv/Scripts/activate


# 実行後、以下のようになっていたら OK
(.venv) $
Macの場合
$ source .venv/bin/activate

□ 仮想環境のイメージ図

上図に示すように、PC内で新たに Python環境が構築されます。
そのため、プロジェクトが不要になった場合などは、仮想環境のディレクトリごと削除することで一式すべて一掃することができます。

[2]仮想環境の有効化を行わずにパッケージのインストールを行うと、システム環境(ローカル環境)にインストールされてしまうので、注意してください。

[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がなかったり、うっかり誤って削除してしまった方用

基本的には、仮想環境を構築した時点で 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 📝

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