データ分析
2024/02/22
伊藤

【環境構築】Python仮想環境venvについての話

Pythonプロジェクトにおいて、異なる依存関係間での衝突を避け、開発環境を一貫させることは、プロジェクトの成功に不可欠です。Pythonのvenvは、このような問題に対処するための強力なツールであり、開発者がプロジェクトごとに独立した仮想環境をこのブログでは、venvの使い方をmkdirから、ベストプラクティスまでを解説します!

はじめに

venvとは…



venv モジュールは、軽量な仮想環境の作成を行います。それぞれの仮想環境は、siteディレクトリに独立した Python パッケージの集合を持っています。仮想環境は、ベース Python とも呼ばれる、すでにインストールされている Python の上に作成され、明示的にインストールしたパッケージのみが利用可能となるよう、ベース Python から隔離することもできます。

仮想環境の中から使われると、pip  のような一般的なインストールツールは明示的に指定しなくても仮想環境に Python パッケージをインストールします。”



下記リンクのPythonのDocumentに書いてる通りです!



なぜやるのか

依存関係の衝突回避:

異なるプロジェクトで異なるバージョンのパッケージを安全に使用できます。


開発環境の一貫性:

新しい開発者がプロジェクトに参加する際、venvを使って簡単に必要な環境を再現できます。


デプロイメントの容易性:

仮想環境を使用することで、本番環境へのデプロイメントがより予測可能で安全になります。


ツールとの互換性:

venvはPythonに組み込まれているため、追加のツールや設定なしで広く使用できます。


使い方

Pythonのプロジェクトを置きたいディレクトリを作成し、移動



mkdir python_sample
cd python_sample


venvを作成(myenvは任意の名前で作成可能)



python3 -m venv myenv


venvをアクティベート


Mac/Linuxの場合:



source myenv/bin/activate


Windowsの場合:



.\\myenv\\Scripts\\activate


venvがアクティベートされた状態で、Pythonファイルを編集・実行します。



python_sample/

├── myenv/ # 仮想環境ディレクトリ

├── my_script.py # Pythonスクリプト
├── another_script.py # 別のPythonスクリプト

└── requirements.txt # 必要なパッケージのリスト


作業が完了したら、仮想環境をディアクティベートします。



deactivate


ベストプラクティス

独立した環境の利用:

プロジェクトごとに独立した環境を作成することで、依存関係の衝突を防ぎ、プロジェクトの再現性を高めます。


requirements.txtの使用:

pip freeze > requirements.txtコマンドを使用して、現在の環境のパッケージとそのバージョンをリストアップし、pip install -r requirements.txtで簡単に再インストールできます。


開発と本番の環境分離:

開発環境と本番環境を分けることで、予期せぬエラーや衝突を防ぎます。


終わりに

Pythonのvenvを使用することは、プロジェクト管理と開発プロセスの効率化において非常に重要です。venvを活用することで、依存関係の衝突を避け、開発環境の一貫性を保ち、デプロイメントを容易にすることができます。このブログを通じて、venvの基本的な使い方から、ベストプラクティスまでを紹介しました。 当ブログが、あなたのPythonプロジェクトにおけるvenvの理解と活用に役立つことができれば幸いです

参照

New call-to-action