【初心者向け】Minicondaの仮想環境の構築

## 1.データ分析のための仮想環境を作ろう！
この記事は**これから自然言語処理関係の開発を始めたい**という方向けに書いています。

開発を始める際に大変なのが**開発環境の構築**です。

環境構築する上では色々な疑問が湧くと思います。
例えば、私はこのような疑問がありました。

- 仮想環境って何？
- 「Anaconda」「Miniconda」「 Google Colab」のどれを使えばいいの？
- エディタはどれを使えばいいの？

それぞれの疑問について考えた上で今回は**「Miniconda」を使った環境構築**を行いたいと思います。

## 2.環境構築の際の疑問
### 2.1.仮想環境って何？

仮想環境は、一言で言うと**そのソフトウェア開発のために都合の良い環境を作るための、別の環境です。**

これだけだと概念的で分かりにくいと思うので、具体例を出しましょう。

例えばいつもはソフトをPython2系で作っていたとします。
しかし、今回のシステムではPython3系の機能が必要なので3系使いたくなったとします。

その時に同じ環境でPython3系を使ってしまうと、2系の機能が使えず、動かなくなることがあります。

このように入っているパッケージやパッケージのバージョンを適切に使うための手段が仮想環境なのです。

※環境構築は面倒くさいですが、ちゃんとやらないと後々もっと面倒くさいのでやりましょう！(経験者は語る)

![スクリーンショット 2021-04-17 17.21.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271238/f3a9fdd0-4759-e552-84d6-6781b0eece86.png)
### 2.2.「Anaconda」「Miniconda」「Google Colabのどれを使えばいいの？」

よくデータ分析系の環境構築でオススメされる3つの手段について表にしました。

| 手段       |     概要　　 |    メリット    |デメリット|
|:-------------:|:--------------|:--------------|:--------------|
| Google Colaboratory|環境構築不要なので<br>手軽に使える |・すぐ使える<br>・GPU/TPUが使える|・Jupyterでない形式の開発ができない<br>・Python以外のソフトの<br>インストールが面倒/できない|
| Anaconda           |GUI操作なので使いやすい |       CLIに慣れない人にも優しい       |・ディスク使用量が大きい<br>・condaを使ったPythonパッケージ管理が非常に面倒|
| Miniconda             |CLIで操作するAnaconda |        ディスク使用料が小さい        |・GUIがない<br>・condaを使ったPythonパッケージ管理が非常に面倒|

詳しくは下記のリンクが参考になると思うのでご覧ください。

[Windows PCで機械学習環境を作る方法まとめ](https://qiita.com/FukuharaYohei/items/8fb34107dda208f79bca)

### 2.3.エディタはどれを使えばいいの？
エディタは人によって好みが分かれますが、個人的には[PyCharm]
(https://www.jetbrains.com/ja-jp/pycharm/)が良いと思います。

### PyCharmのメリット

- タブ補完機能
 - タブ補完機能では関数名や変数名を類推して、提案してくれます。
- 静的解析
 - プログラムコードをチェックしてくれる機能です。
- Anacondaとの連携
 - PyCharmはAnacondaで構築した仮想環境をそのまま使う事が出来ます。
- VCS(GitやBitbucket)と連携可能
 - コードの進捗管理にGitやBitbucketを使われている方は多いでしょう。PyCharmはこれらのVCSと連携することが出来ます。この為、コードのどこが変わったのかも把握しながらコード開発を進めることが出来ます。
 
その他にもマニアックなメリットもあるみたいなので、詳しくは下記の記事が参考になります。

[科学技術計算 x PythonはPyCharmでOK！メリット・デメリットを解説](https://sci-by-py.com/python_general/pycharm/#PyCharmを使うメリット)

## 3.環境構築の手順

前置きをしたところで、実際に環境構築を行います。
手順は大きく３ステップです。

1. Minicondaのインストール

2. 仮想環境の構築

3. PyCharmのインストール 

### 3.1.Minicondaのインストール
まずはMinicondaをインストールします。
[Miniconda](https://docs.conda.io/en/latest/miniconda.html)のページにいったら、それぞれのOS毎に合ったインストーラーを選択してダウンロードしてください。
Python2系とPython3系がありますが、3系をインストールしましょう。
※Python2系は2020年にサポート終了となりました。

### 3.2.仮想環境の構築
次に仮想環境を構築しましょう。

Minicondaには仮想環境を構築するための機能が含まれています。

仮想環境の構築やパッケージのインストールにはcondaコマンドを使います。

ターミナル上で次のコードを打ち込んでください

```
> conda create -n virtual_env
```

これで仮想環境が出来ました。
仮想環境を使うためにはactivateコマンドを実行します。
*virtual_envは私が名付けた仮想環境の名前です。お試しの際は好きな名前を設定してください。

```
> conda activate virtual_env
(virtual_env)>
```

これで仮想環境が起動しました。

この状態でPython3と入力するとPythonインタプリタが開ます。

```
(virtual_env) > Python3

Python 3.7.10 (default, Feb 26 2021, 10:16:00) 
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

```
これで仮想環境でPythonが使えるようになりました。

試しにHello world!と表示しましょう

```
>>> print('Hello world!')
Hello world!
```

Pythonインタプリタから抜ける時はexit()関数を実行します。

```
>>> exit()
(virtual-env)
```

### 3.3.PyCharmのインストール

PyCharmは[公式サイト](https://www.jetbrains.com/ja-jp/pycharm/)からインストールしてください。

![PyCharm.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271238/d71abaec-0d3b-12f7-f220-0e16a254940e.png)

トップ画面に来たら「new project」をクリックしましょう。

![PyCharm設定画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271238/7efa6283-9827-36a8-84ec-a55eadb8ffbb.png)

次にlocationの設定を求められるので、Pythonファイルを保存したいディレクトリを設定しましょう。

locationの設定が終わったらinterpreterを設定しましょう。

interpreterの右端の「...」の文字を押すと次の画面になります。

![interpriter.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271238/ccb1c5e5-3e94-0b12-b35d-560f5606d4be.png)

左側のConda Environmentを選択して、interpreterの右端の「...」を選択して、仮想環境の場所を指定しましょう。

仮想環境の場所を知りたい場合はターミナルで

conda env listと打ち込んでください

```
> conda env list
```

これでプロジェクトが作成されました。

プロジェクトが作成されたら、メニューから「File→New」を選択して、「Python File」をクリックします。
ファイル名を入力したらEnterキーを押します。

今回はファイル名はexample.pyとしました。

そしてRunからRunを押すと実行されました。

![Hello World実行結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271238/c828f9e1-4c4f-db0b-ef64-a99e4303ac34.png)

これで仮想環境のセットアップは完了です。

何か分からない点があれば、ご質問・コメント等よろしくお願いします！

## 4.参考書籍・URL
参考書籍
「機械学習・深層学習による自然言語処理入門」(2020)中村光樹著、マイナビ出版

参考URL
[AnacondaとMinicondaの比較、どちらで環境構築するべきか](https://insilico-notebook.com/anaconda-vs-miniconda/)

[Python超入門その３４〜2.x系と3.x系の違いを理解しておこう〜](https://programming-study.com/technology/python-2-x-3-x-difference/)

[Windows PCで機械学習環境を作る方法まとめ](https://qiita.com/FukuharaYohei/items/8fb34107dda208f79bca
)