【Python】Pythonの仮想環境を使う
例えば、複数のアプリケーションを開発していて、導入パッケージがそれぞれ異なる場合、各アプリケーションで最低限必要なものだけを導入した環境が欲しくなることがある。
また、Pythonの基本的なバージョンは上げつつ、開発中のアプリケーションは特定のバージョンに固定したいことがある。
このようなときは、Pythonの仮想環境を使用し、Pythonのバージョンと導入パッケージをアプリケーションごとに固定する。
ここでは、Python標準機能として用意されているvenv
を使用する。
仮想環境の作成
バージョンを指定せずに作成
プロジェクトのルートディレクトリで以下を実行する。
(以下は仮想環境名を.venv
とした場合)
python -m venv .venv
こうすることで、パスが通ったPythonのバーションで作成される。
Linuxなどの場合は、
python
コマンドではなくpython3
コマンドの場合があります。 ubuntu20.04だとpythonコマンドで大丈夫です。
仮想環境のバージョンを指定する(Windows)
WIndowsの場合はpy
コマンドがあるので、プロジェクトのルートディレクトリで以下を実行する。
py -3.6 -m venv .venv
最初の引数(-3.6
)は、Pythonのバージョンとなる。
仮想環境のバージョンを指定する(mac、Linux)
mac、Linuxの場合は、pyenv
を使うのが良さそう。
githubに公開されているので、インストールする。
使い方などは以下を参照。(そのうち追記します)
参考
[https://www.mathpython.com/ja/ubuntu-python/:embed:cite]
仮想環境の使用
Windows(コマンドプロンプト、PowerShell)の場合
プロジェクトのルートフォルダで以下を実行する。
./.venv/Scripts/activate
Mac、Linuxの場合
プロジェクトのルートディレクトリで以下を実行する。
source ./.venv/bin/activate
運用
仮想環境でパッケージをインストールする
以下コマンドを実行することで、その仮想環境にパッケージが導入される。
pip install [package name]
仮想環境に導入されているパッケージを確認する
仮想環境に切り替え後に以下コマンドを実行する。
pip freeze
仮想環境を配布する
venv
したディレクトリをそのまま渡すのではなく、各端末で仮想環境を作成しパッケージを導入する方法をとる。
まず、配布元で導入するパッケージのリストを作成する。
pip freeze > requirement.txt
作成されたrequirement.txt
を配布し、構築する端末では以下コマンドでパッケージを導入する。
pip install -r requiments.txt
切り替え後のPythonのバージョンを確認する
仮想環境に切り替え後に以下コマンドを実行する。
python -V
※V
は大文字
仮想環境を終了する
Windows、Mac、Linux共に、以下のコマンドを実行する。
deactivate
仮想環境を削除する
作成されたディレクトリを削除するだけ。
所感
pip freeze > requirements.txt
をする際に余計なパッケージを含めたくないときなどは、同じpythonバージョンでも別環境を作った方が良い。
また、複数の環境が作れるので、例えば古いバージョンでバグ報告があった場合の検証環境も簡単に用意できる。
OSごとに若干操作方法が異なるが、標準で使えてお手軽だし、とても便利なので、個人開発でも積極的に使っていきたいと思う。