Udemy講座 Pycharm Python Virtualenv

Python学習【365日チャレンジ!】135日目のマスターU(@Udemy11)です。

久しぶりに朝から釣りにいって、なんとか1匹ゲットすることができました。

釣り ハマチ

堤防は人がいっぱいだったので、テトラからルアーを投げていたのですが、周りで釣れている様子もない中、1匹だけでも釣ることができたので、ラッキーでした。

早速、津本式血抜きをして、冷蔵庫で熟成中です。

それでは、今日もPython学習を始めましょう。

昨日の復習

昨日は、ロギングでSMTPHandlerを使ってE-mailを送信する方法ついて学習しました。

ロガーを生成して、ハンドラーでメール送信に必要なデータをまとめてロガーに渡してメール送信しました。

ただ、ログが発生するたびにメール送信していたのでは、システムに負担をかけたり、メールが大量になってしまうため、ログ解析ツールにログを渡して、解析したデータをツールからメール送信するのが通常のやり方ということでした。

詳しくは昨日の記事をごらんください。

今日は、プログラマーとして、Pythonでのプログラム開発には欠かすことのできないvirtualenvについて学習します。

virtualenvとは

virtualenvとは

virtualenvは、virtual(仮想)environment(環境)の略で、言葉のとおり、Pythonを使うための仮想環境を作るためのパッケージです。

自分が使っているPythonの環境ではない環境で作業をする必要が出てきたときに、Python環境を改めてインストールすることなくPythonの仮想環境を生成し、通常使っている開発環境に変更を加えることなく他のプロジェクトの開発を行うことができます。

たとえば、自分の使っている環境に入れたくないサードパーティーライブラリをインストールしなければならないときなどは、virtualenvを使って新しい開発環境を整えて、仮想環境で作業することができます。

virtualenvのインストール

いつもなら、Pythonistaを使ってコードを実行していますが、今回の学習はPythonistaではなく、Pycharmを使ってのやり方を紹介していきます。

virtualenvはサードパーティーライブラリなので、インストールが必要です。

まずは、pipを使ってvirtualenvをインストールします。

ターミナルを使って次のpipコマンドを実行します。

pip install virtualenv

インストールが完了すれば、Pycharmで仮想環境を作成していきます。

Python2.7の環境を作る

普段の環境は、Python3.7なので、今回はPython2.7の環境を作成してみます。

PycharmメニューからPreferencesを選びます。

Udemy講座 Pycharm Python Virtualenv

左のメニューから【Project:フォルダ名】→【Project Interpreter】を選択し、右上の歯車マークをクリックします。

Udemy講座 Pycharm Python Virtualenv

表示される画面の左メニューで【Virtualenv Environment】が選択され、【New envionment】にチェックが入っているのを確認し、【Base interpreter】から【/user/bin/Python2.7】を選び、右下の【OK】をクリックします。

Udemy講座 Pycharm Python Virtualenv

仮想環境の作成が始まり、下記のダイアログが表示されます。

Udemy講座 Pycharm Python Virtualenv

少し時間が経てば仮想環境の作成が完了します。

作成が完了するとPreferencesの画面が表示され、【Base interpreter】のプルダウンリストにPython2.7の環境ができあがっているのがわかります。

Udemy講座 Pycharm Python Virtualenv

この画面で、【Project interpreter】にPython2.7を選択すると、デフォルトの作業環境がPython2.7になってしまうので、このPreferencesでは、Python3.7のままにしておきます。

Python2.7を使う

Python2.7を使う仮想環境ができたので、実際にPython2.7を使ってみます。

使うPythonファイルは私がこれまで使っていた【lesson.py】で【Configuration】を変更していきます。

Pycharmの画面右上のConfigurasionボタンから【Edit Configurations】を選びます。

Udemy講座 Pycharm Python Virtualenv

左メニューで【lesson1】(名前をlesson1にしている)を選択して、【Python interpreter】からPython2.7を選び、【OK】をクリック。

Udemy講座 Pycharm Python Virtualenv

これで【lesson.py】は、Python2.7で実行されます。

print出力で試す

Python2.7とPython3.7では、コードの記述ルールが変更されています。

違いが簡単にわかるのが、print出力でので、print出力で試してみます。

Python2.7

Udemy講座 Pycharm Python Virtualenv

Python2.7では、print出力に、parenthesesの丸括弧を使いませんので、print "Hello World!"と記述して実行すれば、コンソールにきちんとHello World!が出力されます。

次に、InterpreterをPython3.7に戻してこのコードを実行してみます。

Python3.7

Udemy講座 Pycharm Python Virtualenv

Python3.7では、print出力には、parenthesesの丸括弧が必要ですので、エラーが表示されています。

続いて、ターミナルでも試してみます。

ターミナルで試す

作成した仮想環境は、私の環境では【/Users/bigmacpro/PycharmProjects/python_programming/venv/】に作成されています。

まずはターミナルでそのディレクトリにあるPython2.7の仮想環境を使えるようにするために、次のコマンドを実行します。

souce venv/bin/activate

実行すると、先頭に(venv)が追加されるので、コマンドで【lesson.py】を実行します。

Udemy講座 Pycharm Python Virtualenv

Python2.7の仮想環境で実行されているので、きちんとprint出力が実行されます。

次に、元のPython3.7の環境に戻しますので、次のコマンドを実行します。

deactivate

このコマンドを実行すると、先頭に表示されていた(venv)がなくなりますので、先程と同様に、コマンドで【lesson.py】を実行します。

Udemy講座 Pycharm Python Virtualenv

プログラマーには必須

virtualenvは、私のように、Pythonを学習し始めた人にはあまり必要がないのかもしれませんが、これからプログラマーを目指して、ガンガン仕事を受注したい人には必須のライブラリです。

クライアントから仕事を請け負う時に、すでに使っている自分の作業環境で開発すると運用環境でバグが発生したり、自分の環境がPython3なのに、Python2の環境での開発を求められたりしたら、新しく別バージョンの作業環境を整える必要が出てきます。

そんな時にvirtualenvを使うことで、手軽に求められる開発環境を作ることができます。

私にとっては、まだまだ使う場面は出てきませんが、一度経験しておけば、記憶のどこかにとどめておけるので、いろいろ試しながら学習してみました。

ちなみに、Python2の環境で、parenthesesの丸括弧を使って実行してみたところ、どういうわけか普通にprint出力ができたのですが、どうしてなのかわからないんですよね。

Python3がPython2の部分をカバーしているというのならわかるのですが、Python2がPython3の記述をカバーしてるのはどういうことなんでしょう?

もしかしたら、Python2では、parenthesesの丸括弧があってもなくても問題がなかったけど、プログラムをよりわかりやすくするために、Python3で丸括弧ありだけが認められたということかもしれません。

いろいろ試すといろいろ疑問が浮かんできてなかなか前に進めなくなってしまいますが、Pythonへの理解が少しずつ進むので、ほんとあっという間に時間が過ぎ去っていきます。

時間は限られているので、ある程度理解ができたら次に進むようにするのも必要です。

ということで、明日も元気にGood Python!