# Python仮想環境の利用方法について
更新日: 2022/6/16

## 背景
Pythonは外部モジュールを利用する際に、conda, pip等でインストールすることになる。一方で、開発環境によって利用したいバージョンが異なることがある。

- 例えば[Pythonの最新安定版](https://www.python.org/downloads/)は2022年6月16日時点で3.10.5だが、深層学習で使うことが多い[TensorFlow](https://www.tensorflow.org/install?hl=ja)は3.6〜3.9までしか対応していない。
- 別観点としてはあるモジュールを利用してシステム開発をしている際に、そのモジュール自体の最新版ではなく古い版でしか動作しない機能を利用していることもある。
- conda, pip ではパッケージの管理方法が異なることから、環境を分けたい。

上記のように様々な理由から、Pythonを用いた開発においては「目的に応じて環境を切り分けて用意する」ことが多い。ところが、環境を切り分ける方法自体は統一されておらず、様々な方法が乱立しています（参考：[2021年のPython仮想環境〜いまやvenvを使わない理由はありません〜](https://qiita.com/toast-uz/items/f2df428f75b049b1d172)）

---

## 授業で推奨している環境
-	仮想環境：venv
-	パッケージ管理：pip

---

## venv + pipの主な使い方
以下では「/usr/bin/python3」を使い、環境を「~/.venv/dm」に設定しています。別のPythonインタプリタを使いたい場合には、使いたいものをフルパスで指定しよう。仮想環境を作り直したくなったら、「~/.venv/dm」を削除するか、別場所に新規作成すると良い。環境を切り替える際には source コマンドで用意した環境のactivateを実行しよう。

```
# 仮想環境を新しく作る。
/usr/bin/python3 -m venv ~/.venv/dm

# 仮想環境に入る。
source ~/.venv/dm/bin/activate

# 利用しているPythonインタプリタを確認する。
# sourceコマンドを実行したあとでwhichで確認。
which python

# pipを更新しておく。
pip install –upgrade pip

# 必要な外部モジュールをインストールする。
pip install [モジュール名]
```

---

## VSCodeで仮想環境を利用する
以下は毎回設定する必要があります。標準設定したい場合には環境設定から設定してみよう。

-	手順1: VSCodeを起動する。
-	手順2: 実行したいPythonスクリプトを開く。特に無いなら新規ファイル作成し、拡張子を.pyもしくは.ipynbと付けて保存しよう。
-	手順3: Pythonインタプリタを設定する。
  - 手順3-1: 利用したいPythonインタプリタのパスを確認し、コピーしておく。
  - 手順3-2: VSCodeでコマンドパレットを開く。（Command + Shift + P、もしくはメニューから選択）
  - 手順3-3: コマンドパレットに「python interpreter」と入力し、「Python: Select Interpreter」を選択。
    - 初めて設定する場合は手順3-4, 3-5へ。
    - 過去に設定したことがあるインタプリタを利用する場合は、ここで列挙されるインタプリタから選択するだけで良い。（手順3-4,3-5が不要になります）
  - 手順3-4: 「インタープリタパスを入力」を選択。
  - 手順3-5: 利用したいPythonインタプリタのパスをペーストし、Enter。これで仮想環境内のPythonを使う設定になる。
-	手順1〜手順3を、毎回新規ファイル作成する度に実行する。
