venvで気軽にPythonの仮想環境を構築する

2023年5月16日

広告を含みます





仮想環境を作る

まず仮想環境を作ります。

環境といっても、プロジェクトファイルを作成するだけですので難しく考えなくても大丈夫です。

ディレクトリの作成と移動

「コマンドプロンプト」や「Visual Studio Codeのターミナル」で仮想環境用のプロジェクトファイルを作成します。

実行するためには、まず作成したい位置まで移動する必要があります。

例えば以下のようにcd(カレントディレクトリ)コマンドを使います。

cd C:\Users\ユーザー名\Documents

今回はドキュメントに作成することとします。

環境ファイルの作成

ファイルを作成したい位置まで移動出来たら仮想環境を作成します。

python3 -m venv env

うまく実行できない場合は以下のコマンドを試してみてください。

python -m venv env

環境構築できると「env」フォルダが作成されています。

今回の例だと「C:\Users\ユーザー名\Documents\env」の位置に出来ています。

仮想環境を使えるようにする

環境ファイルが作成できましたが、この時点ではまだ使うことができません。

有効化する指示を出すことで初めて使用できます。

仮想環境の有効化

Visual Studio Codeのターミナル(PowerShell)で実行する場合は以下のコマンドで有効化します。

もしPowerShellの権限の関係でうまくいかない場合は次項を見て対処してください。

env\Scripts\Activate.ps1

コマンドプロンプトで実行する場合は以下のコマンドです。

env\Scripts\activate.bat

仮想環境が有効化されると現在のフォルダ位置の一番左に(env)と表示されるようになります。

(env) PS C:\Users\ユーザー名\Documents\>

このenvという文字は仮想環境を作成するときに入力したpython3 -m venv envのenv部分に何を入力するかによって変わります。

PowerShellの権限の関係でうまくいかない場合

Visual Studio Codeのターミナル(PowerShell)で仮想環境を有効化するとき、以下のエラーが出る時があります。

env\Scripts\Activate.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\Users\ユーザー名\Documents\env\Scripts\Activate.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。

これはセキュリティの関係からPowerShellスクリプトが実行できないようになっているためです。

この制限を解除する必要があります。

まず、現在の制限の状況を確認します。

PowerShell Get-ExecutionPolicy

実行できない時、多くの場合”Restricted”と表示されます。

これは常に全てのPowerShellスクリプトを制限するものです。

今開いているPowerShellスクリプトだけ一時的に有効化する場合には、以下のコマンドでRestrictedからRemoteSignedに制限を緩和します。

PowerShell -ExecutionPolicy RemoteSigned

一時的に有効化できたかどうかは以下のコマンドで確認します。

PowerShell Get-ExecutionPolicy -list

Process(今開いているスクリプト)の部分がRemoteSignedになっていたら大丈夫です。

またCurrentUser(現在のユーザー)やLocalMachine(PCすべてのユーザー)の方はRestrictedもしくはUndefinedのままのはずです。

もし一時的な許可ではなく、常に許可しておきたい場合、コマンドプロンプトを開くときに「管理者として実行」で開くと以下のコマンドが使用できます。

セキュリティを低下させるため十分理解したうえで実行してください。

PowerShell Set-ExecutionPolicy RemoteSigned

仮想環境の終了

仮想環境を終えるためには以下のコマンドを入力します。

deactivate

仮想環境の削除

作成した仮想環境が不要になった場合はフォルダごと削除します。

作った仮想環境を使ってみる

例えば仮想環境でインストールしたライブラリは、元のPython環境や他の仮想環境からはアクセスできません。

この独立性が仮想環境の主な利点の一つです。

裏を返すと、仮想環境を作った段階ではPythonをインストールしただけでライブラリなどの準備が出来ていないということです。

ライブラリのインストール

ライブラリは通常のインストール方法が利用可能です。

例えばNumpyは以下のようにインストールします。

pip install numpy

またGitHubなどでプログラムを他者に共有する場合、インストールすべきライブラリとそのバージョンは「requirements.txt」に記載して保存するのが一般的です。

pipコマンドを使ってファイルを指示することで一括でインストールすることができます。

pip install -r requirements.txt

例えば「requirements.txt」には以下のようなライブラリ名とバージョンが記載されています。

numpy==1.15.4
pandas==0.21.1
matplotlib==2.1.0
Pillow==5.4.1
scikit-learn==0.20.2
Keras==2.2.4
tensorflow==1.7.1

仮想環境を作った直後で何もないところからライブラリをインストールする場合に活用してみてください。

仮想環境のコピー

作成した仮想環境を別の場所で使いたい場合はフォルダごとコピーします。

移動したフォルダにて仮想環境を有効化すれば問題なく使用できます。

ただし仮想環境フォルダのコピーは自分のPCのみでしかできません。

他者のPCで利用できるようにするにはライブラリの情報を「requirements.txt」で出力して共有します。

pip freeze > requirements.txt

仮想環境を移行したいPCで仮想環境を作りpipコマンドでライブラリを一括インストールします。

結局何が凄いのか?

ライブラリはバージョンによって動作が異なる場合があり、これはバグの原因にもなり得ます。

通常は1種類のバージョンしかインストールできません。

一方で仮想環境を使い分離すると複数のバージョンの同一ライブラリを利用できます。

更に作った環境ごと他者のPCへコピーすることで、同じ動作環境を簡単に再現できます。

特にvenvはPythonの標準機能であり、利用しやすいのが特徴です。

オススメ書籍

・化学のためのPythonによるデータ解析・機械学習入門

データ分析に必要な最低限の知識を解説したうえで、化学プラントで得られるデータの扱い方が紹介されています。
脱ブタン塔や排煙脱硝装置を例に取り上げられておりイメージしやすくなっています。

化学のためのPythonによるデータ解析・機械学習入門
化学のためのPythonによるデータ解析・機械学習入門

www.amazon.co.jp

・Pythonによる時系列分析: 予測モデル構築と企業事例

プロセス製造において時系列データの分析は欠かせません。
どのように時系列予測モデルを構築し、ビジネスへ活用していくかを詳細なPythonコードとともに解説してくれます。

Pythonによる時系列分析: 予測モデル構築と企業事例
Pythonによる時系列分析: 予測モデル構築と企業事例

www.amazon.co.jp

・PyCaretで学ぶ 機械学習入門

機械学習モデルを構築するのは想像以上に手間がかかります。
その一連の作業を自動化できるPyCaretというライブラリの使い方が分かりやすく解説されています。

PyCaretで学ぶ 機械学習入門
PyCaretで学ぶ 機械学習入門

www.amazon.co.jp

参考資料

仮想環境:Python環境構築ガイド 

venvでpythonの仮想環境を作る!アクティブ化など使い方まとめ

PowerShell のスクリプトが実行できない場合の対処方法







記事への問い合わせはこちら

-データサイエンス
-