仮想環境で開発しよう

なぜ仮想環境が必要なのか?

プログラミングをする際は、そのアプリ専用の仮想環境を作って開発をします。

開発環境やら仮想環境やら色々あるな・・・と思ったかもしれませんが、ここからは簡単なので安心してください。

なぜ仮想環境が必要なのかを画像にしました。

仮想環境があれば、どのアプリでどの部品が使われているか分かったり、アプリが不要になった時にそのフォルダを消すだけで、不要な部品も同時に削除することができます。

INFO
こういった部品のことを「モジュール」や「パッケージ」や「ライブラリ」と言ったりするので覚えておきましょう。この3つの言葉の使い分けが難しいところではありますが、「モジュール」が集まったものが「パッケージ」で、いくつかのパッケージがセットになっているのが「ライブラリ」となります。

モジュールとは?

何かの機能を指しています。

算数で例えてみましょう。

  • 三角形の面積を計算してくれる機能(モジュール)
  • 正方形の面積を計算してくれる機能(モジュール)
  • 面積を求める色んな計算式モジュールの集まり(パッケージ)
  • 面積だけでなく、算数や数学の色んな計算式(パッケージ)がセットになっているもの(ライブラリ)

モジュールが集まったものがパッケージ、パッケージがセットになったものがライブラリです。


仮想環境の作り方

仮想環境を作るツールはいくつかあるのですが、このサイトではPythonに元から組み込まれている「venv(ブイエンブ)」を使っていきます。

ここからは、Visual Studio Code(VScode)のターミナルを使ってやっていきましょう!

まだVScodeを持ってない方は「Visual Studio Code公式ページ」からダウンロードしてください。

VScodeを開くと、上のメニューに「Terminal(ターミナル)」と書いてあるはずなので、そこから「New Terminal」を開いて下さい。macの場合「command + J」でも起動できます。

するとVScode内にターミナルが出てきますのでそこで操作していきます。

仮想環境用のディレクトリを作成

パソコンのどこかに仮想環境用(アプリ用)のディレクトリ(フォルダ)が必要なので作っておきます。

分かりやすいのでデスクトップに作っちゃいましょう。

MacBook:~ NOIZMOON$ cd desktop
MacBook:desktop NOIZMOON$ mkdir app1

このコマンドでは「cd desktop」でdesktopに移動して、「mkdir app1」でapp1というディレクトリを作成するという操作をしています。mkdirは「make directory(メイク・ディレクトリ)」の略です。

INFO
どこでコマンド操作をしているか確認するようにしましょう。上の操作では「MacBook:desktop」の部分で、desktopで操作していることがわかります。

app1に仮想環境を作成

デスクトップにapp1というディレクトリを作成できたので、次はapp1の中に仮想環境を作っていきます。

仮想環境を作るコマンドは「python -m venv 仮想環境の名前」です。

この記事では、仮想環境の名前を「myenv(マイエンブ)」とします。

MacBook:desktop NOIZMOON$ cd app1
MacBook:app1 NOIZMOON$ python -m venv myenv

このコマンドだけで仮想環境の作成ができます。あとは今作った仮想環境を有効化しましょう。

「source 仮想環境の名前/bin/activate」で有効化できます。

$ source myenv/bin/activate

すると、先頭に(myenv)と表示されたと思います。

(myenv) MacBook:app1 NOIZMOON$

Djangoで開発をしている時は、必ず先頭に(仮想環境名)がついた状態で開発しましょう。

INFO
新しくアプリを開発する時は、毎回仮想環境を作って有効化する作業が必要です。なので、この作成と有効化のコマンドはMacのメモ帳などに書いておくと後で使えるので便利です。

pipコマンドを覚える

仮想環境でPythonのパッケージをインストールしたり削除したりするには「pip(ピップ)」というコマンドを使います。ピッピじゃありません笑

「pip install パッケージ名」で指定したパッケージをインストールすることが出来ます。

以前「homebrew」や「pyenv」を使ってインストールした時と似ていますね!

先頭で何を使ってインストールするかを指定し、installの後に名前を書くという構造になっています。

$ brew install *****
$ pyenv install *****
$ pip install *****

では、出来たてホヤホヤの仮想環境に何が入っているか「pip list」で確認してみましょう。

(myenv)$ pip list

Package    Version
---------- -------
pip        20.2.3
setuptools 49.2.1
WARNING: You are using pip version 20.2.3; however, version 22.2.2 is available.
You should consider upgrading via the '/Users/ユーザー名/Desktop/myenv/bin/python -m pip install --upgrade pip' command.

バージョンは違うかもしれませんが「pip」と「setuptools」が入っていると思います。

さらに初期状態の仮想環境には、古いpipとsetuptoolsが入っていると思うのでWARNINGが出ているはずです。

WARNINGが出てなければ最新なので次の項目へ進みましょう!

このWARNINGには「pipが古いからアップグレードを検討してね〜」という内容が書かれているので、アップグレードしちゃいます。

(myenv)$ pip install --upgrade pip setuptools

このコマンドは「pip」と「 setuptools」の2つを同時にアップグレードしています。

もう一度pip listで確認するとWARNINGが消えているはずです。

(myenv)$ pip list

Package    Version
---------- -------
pip        22.2.2
setuptools 65.3.0

仮想環境作成手順まとめ

この一連の作業はやってたら慣れるので、無理に覚える必要はありません。

最初のうちは、メモ帳にメモしておいてコピペで使っちゃいましょう!

# ディスクトップに移動
$ cd desktop

# app1のディレクトリを作成
$ mkdir app1

# app1に移動
$ cd app1

# myenvという名前の仮想環境を作成
$ python -m venv myenv

# myenvを有効化
$ source myenv/bin/activate

# pipとsetuptoolsをアップグレード
(myenv)$ pip install --upgrade pip setuptools

まとめ

  • 開発をする時は仮想環境を作成する
  • アプリごとに仮想環境を作成する
  • 先頭に(env)が表示されている状態で開発する
  • 開発環境作成の手順は無理に覚えず最初はコピペでOK

次は、ちょっと寄り道してVScodeを日本語化したり便利にしていきます