Python、仮想環境で動くってよ

python
python

Pythonを仮想環境で動かしてみました!

これは、やってみないと分からないな。

Pythonを仮想環境で動かしてみました。

Python学習中で、いろいろと調べていると時折現れるワード「仮想環境」!
英語で書くと、「Virtual environment」
まず、なんかカッコいいですよね。

カッコいいかどうかはともかく、私のようにPython学習中でいろいろな事に手を出していると、たくさんのライブラリをインストールすると思います。
(例えば、Nanpy、Pandas、matplotlib、requests、beautifulsoup4などなど)

最初にインストールしていたPythonの環境に、たくさんのライブラリをいれていくと、重くなったり、エラーが出たりすることがあるようです。
そこで、使えるらしいのが、「仮想環境」!
私の場合は、Google Books APIをいろいろ試すにあたり、事前に仮想環境を構築しました。
別にAPIを使うのに、仮想環境が必要という事ではありませんが、環境を分けた方が良いかなと思ってやってみました。

「仮想環境を構築」と聞くと非常に高度なことをやるように聞こえますが、簡単ですし時間も大してかかりません。みんなで「仮想環境」で遊びましょう!
(2021年5月8日:学習開始78日目 PyQさんで勉強中!

オンラインPython学習サービス「PyQ™(パイキュー)」


仮想環境と聞くと、映画「Matrix」を思い出します。
当時、誰もが度肝抜かれた映像の数々はいまでは当たり前(というには今でも通用するけど)になっていますが、映画の独自性やスタイリッシュさはいまでも色合せません。
2021年5月現在、「Matrix」「Matrixリローデッド」「Matrixレボリューションズ」の映画3作が公開されています。
全く予想だにしていませんでしたが、2022年に4作目が公開予定だそうです。
今の技術でどんな世界、どんな映像を見せてくれるのか?楽しみですね。

このMatrixを代表する曲といえば、Rage Against The Machineの「Wake Up」ですね。
映画1作目のエンディング曲であり、バンド名「Rage Against The Machine」、曲名「Wake Up」。
全てが映画にピッタリすぎますが、映画が1999年、曲のリリースが1992年と直接関係はないんですよね。映画同様、今でも、いや現代にこそ響き渡る名曲、名アルバムです。
(曲名から公式YouTubeに飛びます。)

では、作っていきましょう、私たちの「Matrix」を!

1.なぜPythonに仮想環境が必要か?

ここは、あくまでも私の私見です。
Pythonで仮想環境を設けた方が良い理由、それは大きく2つだと思います。

理由①:Pythonは出来ることが幅広い
理由②:Pythonのバージョンアップ

理由①:Pythonは出来ることが幅広い
Pythonを始めるときのうたい文句の一つに、「Pythonは出来ることが幅広い」というのがあります。
これは、まさにその通りです。
では、なぜ幅広いか?それはライブラリ(機能)が非常に充実しているからです。
標準のライブラリに加えて、インストールして使用できるライブラリがたくさんあります。
これは多大なメリットですが、ライブラリ間の相性が悪いものも出てきてしまうようです。
そこで、元のPythonと異なる仮想環境を作って、そこにライブラリをインストールすることで干渉を避けることが出来ます。

理由②:Pythonのバージョンアップ
Pythonで問題になることの一つに、「Python2とPython3問題」があります。
私は3しか触っていませんが、同じPythonでも2と3は大きく仕様が異なるようです。
3では通用するが2では通用しないコードの書き方があったり、対応していないライブラリがあったりで、別物のように捉えた方がよさそうです。
では、最新の3だけ使えば良いのでは?って思いますが、事はそう単純ではありません。
すでにPython2で構築されているプログラムもあるため、完全に無視も出来ません。
そこで、同じPC内でも、Python2環境とPython3環境を構築する必要がでてきます。
こういった場合にも「仮想環境」が役立つようです。

2.仮想環境ってどんな感じ?

簡単にいうと、
「元のPythonとは別のフォルダを作って、バージョン違いのPythonやライブラリを入れていく」
という事です。
イメージはこんな感じです。

イメージできますか?
私はこの説明の時点では、うっすらとしか分かりませんでした。
実際にやってみた方が早いです。

3.仮想環境をつくろう

さっそく作っていきましょう。

なお、私はPCはWindows10です。Macでは若干の違いがあると思います。

ここでは、「virtualenv」を使った仮想環境の構築を行います。
仮想環境の作り方はいくつかあるようですが、1本槍で行きます。
Python標準よりも簡便らしいので、これで行きます。
【注意】Anaconda環境では「conda」という仮想環境プログラムを使うようです。

手順は、
①:「virtualenv」のインストール
②:仮想環境の作成
③:仮想環境を使える状態にする
④:仮想環境の作成後にやった方が良いこと(pipのバージョンアップ)

です。

手順①:「virtualenv」のインストール

「virtualenv」のインストールしていきます

Windowsの「コマンドプロンプト」を開きます。Macではターミナルが相当するようです。
(分からない場合、Winマークの横の検索欄に「cmd」と入れると出てきます。)

コマンドプロンプトに、「pip install virtualenv」と入力、実行します。
他のライブラリをインストールする場合と同じですね。
例の前半部分はそれぞれのPC環境により異なりますので、XXXXXXにしています。
(この辺りが初心者には意外と分からないですよね?私も苦労しています。)

C:\Users\XXXXXXX> pip install virtualenv

いろいろと表示が出ますが、最後あたりに以下が表示されればOKです。

~~~~~~略~~~~~
Successfully installed ~~~~~~略~~~~~

インストールはこれで完了です。

手順②:仮想環境の作成

次に、「仮想環境」を作成していきます

引き続き、コマンドプロンプトで作業をしていきます。
ちなみに、「Windows PowerShell」ではデフォルト設定ではうまくいきません。
設定を変えれば可能ですが、ここはコマンドプロンプトを使っておきましょう。

ここでは、「env_scraping」という環境を作っていきます。
名前は自由です。私の場合、スクレイピング用の環境という事で作っています。
では、コマンドプロンプトに「virtualenv (仮想環境名)」と入力、実行しましょう。

C:\Users\XXXXXXX> virtualenv env_scraping
~~~~~~略~~~~~


またいろいろと表示が出ると思います。
細かいところは環境によりことなるので気にしないで良いです。

created virtual environment CPython3.7.2.final.0-32 in 1056ms
~~~~~~略~~~~~
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

これで、仮想環境ができました。
では、確認してみましょう。
コマンドプロンプトで表示されているパスの位置、この場合「C→Users→XXXXXXX」にいま作成した「env_scraping」というフォルダが出来ているかと思います。
出来ていれば、OKです

手順③:仮想環境を使える状態にする

手順②で仮想環境ができましたが、現時点では元のPythonがそのまま有効な状態です。
この状態で、ライブラリをインストールすると、元のPythonにインストールされます。今までと同じです。

では、仮想環境を有効化していきましょう
引き続き、作業は「コマンドプロンプト」でおこないます。

まず、仮想環境のフォルダに移動します。
「cd (仮想環境フォルダ)」と入力して実行します。

C:\Users\XXXXXXX> cd env_scraping

そうすると、以下のようになり、フォルダに移動できます。

 C:\Users\XXXXXXX\env_scraping>

続いて有効化です。
ここに、「scripts\activate」と入力、実行します
注意点:「scripts」と「activate」の間は「バックスペース」です。
注意点:「script」ではなく、「scripts」です。
バックスペースと\は表示がブレるので初心者泣かせですよね。

C:\Users\XXXXXXX\env_scraping>scripts\activate

すると、このような表示になると思います。

(env_scraping) C:\Users\XXXXXXX\env_scraping>

頭の部分が変わっている点に注意してください
このようになっていれば、有効化OKです。

この状態で「pip freeze」と入力して実行してみてください。
このコマンドは、インストールされているライブラリを確認できるコマンドです。

(env_scraping) C:\Users\XXXXXXX\env_scraping>pip freeze

かなり少ないと思います。
いままで、元のPythonに入れたライブラリも見当たらないはずです。
これで有効化完了です。

次に進んでOKですが、仮想環境からの抜け方も記載しておきます。
scripts\deactivate」で元に戻ります。

(env_scraping) C:\Users\XXXXXXX\env_scraping>scripts\deactivate

うまく出来ていると、頭の部分が元の表示に戻ると思います。

C:\Users\XXXXXXX\env_scraping>

この状態だと、フォルダの位置は「env_scraping」ですが、元のPythonが有効です。
試しに「pip freeze」をやってみると、今まで導入したライブラリが表示されると思います。
ちなみに、ここで「cd ..」と入力すると、フォルダも元に戻れます。

手順④:仮想環境の作成後にやった方が良いこと(pipのupdate)

実質③で終了しています。
ここでは、初回使用時にやっておいた方が良いこととして、「pipのバージョンアップ」を行います。
これは、仮想環境を作ったときに、ライブラリをインストールする際のpipも古いバージョンのものを引っ張てきており、最新版ではないためです。
2回目以降は不要です。

バージョンによって異なるようですが、
「pip install –upgrade pip」または
「python -m pip install –upgrade pip」

でpipのバージョンアップが出来ます。私の場合、下の方がうまく行きました。
(Macはまた違うという話もあるようです。)

(env_scraping) C:\Users\XXXXXXX\env_scraping>pip install –upgrade pip
(env_scraping) C:\Users\XXXXXXX\env_scraping>python -m pip install --upgrade pip

どちらかを実行してうまくいけば、このような感じの表示がされると思います。

~~~~~~略~~~~~
Successfully installed pip ~~~~~

こうなれば成功です。

ここまでくればやることはないです。
説明を聞くよりも、実際にやってみた方が早いし、理解も深まると思います。
仮想環境に好きなライブラリを入れて、「仮想環境で遊べ!」

(ちなみに、不要な仮想環境はフォルダ毎削除すれば良いようです。)

FIN

PyQさんで勉強中!

コメント

タイトルとURLをコピーしました