渓のライフマネジメント日記

日々の活動と雑感をゆるゆると記録するところです。みんなHAPPYになっちゃえ。

pythonを仮想環境で動かそう

前回はhello worldまで進みましたがblogの更新頻度からして、既に僕のPythonレベルを超えている人もいるかと思います。今回は仮想環境の構築です。

 

 

 

仮想環境とは

 Python2系とPython3系ではそれぞれ専用のライブラリが必要な場面もあります。(前回のライブラリ構築に使用したライブラリpipとpip3がそれにあたります。)また、ライブラリが相互に依存するバージョン同士を合わせたり、最新版と古いバージョンを共存させる必要が出てきます。

 また、Pythonで開発を長年していると、特に自分のような初心者だと、あれこれ試しているうちに無駄にライブラリが増えてしまいます。コード流用しているうちにものすごいサイズのパッケージになってしまうこともあります。これでは他人に預けるときにものすごい不都合ですよね。

 また、それにより、同じシステム内の別のプログラムが動作しなくなるというようなことが発生します。

 こういった問題を解決するために、特定のスクリプトごとに専用のPython仮想環境を用意するのが今回の目的です。仮想環境を用意してやれば、うっかり過ちを犯そうが(←大事)、あれこれ試そうが自由自在ですからね。

 

venvによる仮想環境の構築

仮想環境の構築にはいくつかライブラリがありますが、今回はvenvと呼ばれるライブラリを使用します。venvは標準ライブラリです。早速仮想環境を一つ作ってみます。

今回はsampleという仮想環境を作ります。コマンドプロンプトでC:\py\フォルダに移動して次のコマンドで作成しましょう。

python -m venv sample

f:id:ca_apple:20200429090822p:plain

python3コマンドではうまくいきませんでした(てへぺろ

f:id:ca_apple:20200429091009p:plain

ディレクトリ構成はこのような感じ。

仮想環境のアクティベート

 前項で実施したコマンドは、仮想環境のためのディレクトリや必要なファイルを用意したにすぎません。仮想環境はアクティベートしなければ使えないのです。

 仮想環境にログインするときはactivate(有効化)、仮想環境から出るときはdeactivate(無効化)が必要になります。一気に用語が飛び出しソードアートオンライン感が出てきましたね。ワクワク極まりないですね。

 では、早速仮想環境に息を吹き込みましょう。

c:\py\sample\sample\Scripts/activate.bat

f:id:ca_apple:20200429093142p:plain

仮想環境「Sample」にログインしました。

コマンドプロンプトの左側に(sample)と記載されていますね。これが仮想環境を表しています。いつものpip listでライブラリを確認してみましょう。

元の現実世界(リアルワールド)では、urllibとrequestsが登録されていたはずですが・・・。

f:id:ca_apple:20200429093435p:plain

仮想環境ではライブラリはリセットされるのです。

消えていますね。ついでにworningも出ています。これは、ライブラリがアップデートできることを意味するメッセージです。これに従ってアップデートしてみましょう。

python -m pip install --upgrade pip

f:id:ca_apple:20200429093645p:plain

早速アップデートコードを実行してみました。

Succesfully!(成功しました)

さて、一度仮想環境から脱出しましょう。

脱出のコマンドは deactivateです。

f:id:ca_apple:20200429094004p:plain

脱出成功!pipのバージョンも20.1になっていますね。

これで元の環境に戻ってきました。プロンプトの左側から(sample)がなくなっていますね。

 

仮想環境にログインするためのbatファイルを作成しよう

 さて、仮想環境は今後開発を続けるうえで、とてもよく利用するものですね。できるならPCを立ち上げた後さっと仮想環境に入ってしまいたいところです。

 簡易なPathならともかく、毎回いちいちフルパスで記述するのは面倒です。そこで、仮想環境をアクティベートするためのmyenv.batファイルを用意します。

中身は2行です。

cd C:\py\sample\Scripts
activate.bat

 これをコマンドプロンプトのホームパス(HOMEPATHコマンドプロンプトを開いて、最初に開かれるカレントドライブのカレントディレクトリ) )に置きましょう。

大概はC:\[ユーザー名]\[パソコン名]\なのではないかと思いますが…。

 試しにホームパスから起動してみてください。どうでしょう?うまくいきましたか?

 僕はこのbatを少し改良して、キー入力とGOTOで複数の仮想環境を分岐起動するシステムにしていますが、自己満足です。通常はbatファイルをいくつも増やすだけで大丈夫でしょう。

 

仮想環境の消し方

 さて、仮想環境を消去する必要が出てくることがあります。この削除が簡単なのも仮想環境の良いところです。人によってはいろいろな黒歴史がありますからね。

 やり方は簡単です。仮想環境のディレクトリ、今回でいうところのsampleの上位ディレクトリに移動し、

rd /s sample

ディレクトリごと削除します。忌まわしき記憶とともに。

 あるいは、Windowsエクスプローラから該当のフォルダを削除することでも構いません。

 もう一つ、仮想環境を初期化する方法もあります。

python -m venv --clear sample

というコマンドです。どうせ同じ仮想環境を再構築するのであれば、この方法がよりよいでしょう。

 今回の記事はここまでですが、何か間違いや質問等がありましたらお気軽にご質問ください。 

 

この記事を書いた人

 こんな感じの記事を書いています。良かったらスター&仲良くしてください!

コメント欄も自由に使ってください。どんなコメントでも待ってまーす。

twitter.com