venvを使ったPythonの環境構築

はじめに

venvを使って、Pythonの作業の環境をプロジェクトごとに作れるようにしたいと思います。

簡単にいえば、使用しているパソコンの中にもう1つ別の環境を仮想的に作るという事です。

そうすれば、元からパソコンにある内部データやファイル構造を考慮する事なく作業ができるようになります。

私も最初はそのようなことをあまり意識せず、機会的にvenvを使用していました。

しかし、開発環境とそうでない環境は分けておいたほうが後々データをスッキリ扱えるのではないかと思えるようになりました。

手順

まず以下のようなコマンドを実行して作成する環境名を指定します。

$ python -m venv [環境名]

以下は実行例です。

「test」という環境名で作成しています。

f:id:tk0137:20200922191523j:plain

lsコマンドを実行すると環境を作成したディレクトリ下に作成した名前のデイレクトりが作成されているのが確認できると思います。

f:id:tk0137:20200922193452j:plain

次にこの作った環境に切り替えるために次のコマンドを入力します。

「test」の部分は各自作成した環境名に変更して実行してください。

$ source test/bin/activate

上のコマンドを実行すると以下のようにユーザ名の左に環境名が表示され、環境に入った事が分かります。

f:id:tk0137:20200922194214j:plain

ここで以下のコマンドを実行してインストールされているモジュールを確認してみます。

$ pip freeze

f:id:tk0137:20200922194712j:plain

これを見ると私が作成したばかりの環境には上の画像のようなモジュールが最初から入っていることが分かります。

例えば、opencvをインストールした後にもう一度モジュールを確認してみます。また、インストールには以下のコマンドを実行。

$ pip install opencv-python

f:id:tk0137:20200922195448j:plain

新しくバージョン4.4.0.42のopencvがインストールされていることが分かります。

次は逆にopencvをアンインストールした後にモジュールを確認してみます。アンインストールのためのコマンドは以下です。

$ pip uninstall opencv-python

f:id:tk0137:20200922200145j:plain

先ほどインストールしたopencvが表示されなくなりました。

続いてバージョンを指定してopencvをインストールしてみます。以下のコマンドを実行。

$ pip install opencv-python==3.4.11.41

f:id:tk0137:20200922200804j:plain

するとバージョン指定なしの時の4.4.0.42ではなく3.4.11.41のopencvがインストールされています。

このように環境ごとにバージョンを整理して、作業効率をあげることができます。

また以前の記事(<Python>ModuleNotFoundError解決法2 – 情報のいろは)にも書かせていただきましたが、インストールしたモジュールのインポートでパスが通っていないことによるエラーが発生することがありますが、私はvenv環境下ではそのようなエラーには遭遇したことはありません。

最後に、作業が一通り終了して環境を閉じようと思います。以下のコマンドを実行すると開いている環境を閉じることができます。

$ deactivate

f:id:tk0137:20200922202838j:plain

このように、左の環境名の表示が消えて環境を閉じることができたと分かります。

最後に

pythonで大きなプログラムを作成する場合にモジュールを大量にインポートすることがありますが、そのインポートの時点でエラーが出てしまうということがなく、環境ごとにモジュールのバージョン整理ができるので、作業の効率化が図れるのではないでしょうか。

簡単ではありましたが、最後までありがとうございました。