ここ2ヶ月 AIなどの機械学習やWebアプリケーションなども作ることができるサーバー言語のPythonについて学習をしており、備忘録を残していこうと思います。
Python を使ってアプリ開発や機械学習の実験を行う際、さまざまなライブラリやフレームワークを導入していきますが、それらを毎回自分のPCに直接インストールをしていくとPCが重くなっていくため、あまり推奨されません。
「タスクアプリを作る」、「チャットアプリを作る」、「ディープラーニングなどの画像診断実験をする」といった時、その用途に応じて専用の実行環境を作成し、切り替えて使用するのが一般的です。
このように、一時的に作成するプログラミング実行環境を、「仮想環境」 と言い、Pythonアプリ開発での最初の準備になります。
仮想環境導入のメリット
仮想環境導入のメリットをまとめます。
- アプリ開発時、Pythonのライブラリやフレームワークを開発アプリごとにインストールして管理することで、モジュールの追加や入れ替えを行う際、システム全体への影響を防ぐことができる。
- アプリ開発においてPythonやモジュールの異なる複数のVersionを使い分けができる。Python 3.7 で Webアプリケーションフレームワークとして Django の 1.10 を使い、新しいプロジェクトでは Python 3.8 とDjango バージョン 1.11 を使用したい場合など、簡単に切り替えられるようにしたいなど。
上記のような理由からアプリ開発前の準備として仮想環境の構築をしておくと良いでしょう。
venvでの仮想環境構築の手順
Python3 を導入すると実は venv という仮想環境構築用の標準ライブラリが搭載されており、最もスタンダードなPython仮想環境作成する方法ですので手順を紹介していきます。
今回は例として、デスクトップにPythonのタスク管理Webアプリ(task_appという名前にします)開発のプロジェクト格納用のディレクトリを作成することとします。
まずはアプリ開発用プロジェクトディレクトリの準備から
まずは次にWindowsならコマンドプロンプト、Macならターミナルを開き、MacもWindowsの方も次のコマンドでDesktopに移動します。
cd Desktop
次のコマンドでディレクトリ task_appを作成します。直接デスクトップ上で新規フォルダ作成(フォルダ名:task_app)していただいても問題ありません。作成後、デスクトップにフォルダができているか確認してください、Windowsなら dir、Macなら ls、と入力すると現在の階層にあるファイル名やフォルダ名が確認できます。task_appができているか確認してください。
mkdir task_app
※予備知識でとしてひとつ上のディレクトリに戻るには、以下コマンドを入力します。ディレクトリの移動の基本は cd と cd .. です。
cd ..
task_appフォルダが作成できたらcd コマンドでtask_appフォルダ内に移動しましょう。
cd task_app
venvコマンド仮想環境実装
それでは仮想環境 kasou を実装します。以下venvコマンドで 仮想環境を作成ができます。
Windowsなら
python -m venv kasou
Macなら
python3 -m venv kasou
※Macの場合、Windowsのようにpython -m venv kasou のpythonの後に3をつけないと、python2系が標準でインストールされている場合にpython2系で仮想環境が作成されてしまうため注意が必要です。
上記で仮想環境の作成は完了です、Python標準ライブラリのため、venv コマンドを入力するだけで仮想環境が出来上がります、便利ですね。
仮想環境の切り替え(実行):activate
今後仮想環境を利用してアプリ開発や実験を行う際は、venv
フォルダがあるディレクトリで下記コマンドを実行します。
Macなら
source venv/bin/activate
実行後、ターミナルに表示されているパスの左に (venv)
と表示されていれば仮想環境がアクティブ化されています。
※バージョン指定で仮想環境作成する場合
例) python3.8で仮想環境を作成する場合
py -3.8 -m venv venv
*事前に該当バージョンがインストールされていなければできません。複数バージョンをインストールしている場合に、仮想環境のバージョンを指定することができます。
Windowsの場合は、PowerShellでスクリプトの実行を許可しておく必要があるため、初回のみ仮想環境実行前に以下のコマンドを入力/実行してください。以降仮想環境実行時は入力不要です。
Set-Executionpolicy RemoteSigned -Scope CurrentUser
上記コマンドを初回は入力しておかないと以下のようなエラーが表示される場合があります。
.\venv\Scripts\Activate.ps1 : このシステムではスクリプトの実行が無効になっているため、
ファイル C:\Users\user1\venv\Scripts\Activate.ps1 を読み込むことができません。
詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170)
を参照してください。
発生場所 行:1 文字:1
+ .\venv\Scripts\Activate.ps1
+ ~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
実行ポリシーを聞かれたら、「Y」を入力。 これで、今後仮想環境を作成しても「PSSecurityException」エラーは出ません。
上記対策後、以下コマンドで アクディブ化します。
python -m venv venv
仮想環境の終了(deactivate)
開発作業が終了したら以下コマンドで仮想環境を終了しましょう。
MacもWindows以下のコマンドで仮想環境を終了できます、(venv)が外れていることを確認してください。
deactivate
※すでにAnacondaを導入している場合
AnacondaはPython本体及びPythonでよく利用されるライブラリをセットにしたPythonパッケージで、すでに導入済みの場合、venvでの仮想環境がうまく動作しない場合がありますのでこちらを試してください。
作成した仮想環境の確認
次のコマンドで仮想環境のディレクトリとパスが表示されます。
conda info -e
仮想環境の作成
新しい仮想環境を作成するコマンドです。
仮想環境名をvenv
とする場合の例
conda create -n venv
仮想環境ができたら、再び下記実行してできたフォルダの場所を確認してください。
conda info -e
仮想環境の実行
仮想環境名をvenv
とする場合の例
Macなら
conda activate venv
Windowsなら
activate venv
アクティベートの終了
Macなら
conda deactivate
Windowsなら
deactivate
ライブラリのインストール
カレントディレクトリに移動、パスはconda info -e
の結果を使うなどして自分の環境に合わせてください。
conda install ライブラリ名
まとめ
以上で、仮想環境の構築ができました。作成するアプリごと実験ごとに仮想環境構築を行うことでPCへよきせぬ影響を防ぎ、管理しておくことをオススメします!