windows版: python 仮想環境管理 venvとanaconda

##目次
- 背景
- 目的と記事の対象読者
- 実行環境と実行フロー
- 参考1　:Anacnodaのメリット,デメリット
- 参考2　:お世話になった記事一覧

###背景
職場の方にAnacondaはやめたほうがいいと散々言われました。
Macだと不具合が多いらしく、Windowsの僕にはそれほど関係ないのかと思いましたが、公式サイトを見るとVenvを推奨しています。
またAnacondaは環境の切り替えに時間が掛かります。イライラしますし、今後プロジェクトごとにパッケージなどを管理することを考えると早めに済ましておくべき。

なので思い切って仕事のない日に全部変えてやりました。


 
###目的
- Windows上で仮想環境をVenvで作り、起動、終了、切り替え等の操作ができる
- 普段使っているEditのVSCodeを仮想環境上で使う
- たまに使うJupyterを仮想環境上で使う

いずれも成功しました。
###対象

- 引っ越ししたい方（Windows)
- 初めてローカル環境でPythonを使えるようにしたい方（Windows)

既存のファイルやアプリ、ライブラリなどをすべて消したので、実質初めての環境構築です。
Macは分かりません。



###実行環境
- Windows10 (64bit)
- python (64bit)
- VSCode (System Installer 64 bit)




###実行フロー
#####1 Pythonとanacondaのアンインストール
アンインストールだけなので、細かくは触れません。
何を残すべきか分からないので、全部消しました。
#####2 PythonをインストールしてPathを通す
ここからPythonをダウンロードしました。
https://www.python.org/downloads/windows/
私は、Windows x86-64 executable installer のExeファイルからインストールしました。

インストールが終わったら、システム環境変数のPathにインストールしたPythonのディレクトリを追加します。デフォルトだと

C:\Users\<自分のユーザー名>\AppData\Local\Programs\Python\Python37

になっているので、自分のユーザー名を変えれば上手くいくと思います。
一度再起動をします。

######3 pipをインストールしてPathを通す
再起動後、pipを入れます。
以下のファイルを C:\Users\<ユーザー名> 直下に保存します。
https://bootstrap.pypa.io/get-pip.py
その後コマンドプロンプトのターミナルから

```terminal
C:\Users\<ユーザー名>python get-pip.py
```
でインストールされます。インストールされたので、先ほどの<ユーザー名>直下のPythonファイルは削除して構いません。
システム環境変数のPathにインストールしたpipのディレクトリを追加します。デフォルトだと

C:\Users\<自分のユーザー名>\AppData\Local\Programs\Python\Python37\Scripts

になっているので、自分のユーザー名を変えれば上手くいくと思います。
再び再起動をします。

#####4 virtual envのインストール
pipが使えるようになったので、

```terminal
C:\Users\<ユーザー名>pip install virtualenv
```
これでVirtualEnvが使えるようになります。

#####5 virtual envで、仮想環境を作って使う

```terminal
C:\Users\<ユーザー名>python -m venv tutorial-env
C:\Users\<ユーザー名>tutorial-env\Scripts\activate.bat
```
これで仮想環境ができました。

#####6 VSCodeのインストール
https://code.visualstudio.com/Download
System Installerの64 bitをインストールしました。
インストール途中で、CodeでVSCodeが起動するような設定にするかというオプションがあったので、すべてチェックしました。

#####7 VSCodeとVenvの接続
Venvで仮想環境を起動して

```terminal
(tutorial-env) C:\Users\<ユーザー名>code
```
と打つと、上でやった設定によりVSCodeが起動します。

#####8 VSCodeの設定もろもろ

- 1 Set-ExecutionPolicyの設定
- 2 Microsoftの文字が書いてあるPythonをインストール
- 3 pythonのインタプリタをVenvのものに変更

 powershellを開発者モードで開いて、

```powershell
Set-ExecutionPolicy RemoteSigned
```
を貼り付けます。

次にVSCodeのSearch Extensionから、Microsoftの文字が書いてあるPythonをインストールします。

![スクリーンショット (262).png](https://qiita-image-store.s3.amazonaws.com/0/247925/3cad24f2-ca6b-2121-7f73-55ba93ec1a8a.png)

これです。
最後に、Ctrl+Shift+pで画面上部にバーを出して、ここに![スクリーンショット (263).png](https://qiita-image-store.s3.amazonaws.com/0/247925/d9fca81c-4cba-c80b-2232-a01d3c9010c7.png)

Python; select interpreter（日本語はインタプリタの選択）というものがあるので、
これをクリックしてVenvで作った仮想環境を選択します。

######9 jupyterを使う
すぐに使えました。

```terminal
(tutorial-env-1) C:\Users\<ユーザー名>pip install jupyter
(tutorial-env-1) C:\Users\<ユーザー名>jupyter notebook 
```
で使えました。

######10 おわり
以上で、当初の目的は達成できました。
色々ググったりしたら、ほとんど半日かかったのでぜひ使ってみてください。
不具合、問題等あれば教えてください。すぐに修正します。

###参考: Anacondaのメリット,デメリット

- メリット
    - インストールが簡単：Anacondaをインストール、Pathを通したらすぐに使える
    - バージョン管理も意外と簡単 : Navigatorを開いて、Create Environmentで直感的に操作
    - VirtualEnvが自動的に使える
    - Jupyterを簡単に使える :　対話的開発環境のJupyter Notebookも簡単に使える
    
#####要約すると、pythonが簡単に使えるようになりました。大変お世話になりました。  

- デメリット
    - いらない機能がインストールされるので、無駄にCドライブが圧迫される![スクリーンショット 
    - 仮想環境を作る際の、処理速度が遅い
    - なので環境を切り替える際の手間が尋常じゃない
    - 環境構築が簡単なはずなのに、ネット上にクソ記事が多すぎてうまくいかない
    - Macユーザーは色々不具合があるみたいなので、Macに変えたい人はいつかは変更せざるを得ない

######Macユーザーに比べれば被害は少ないですが、ネット上の記事を見る限り人に勧めたいものではないようです。実際に使っていて、重いと感じることは多々ありました。

###参考:　お世話になった記事一覧

[pipとVenvのインストール](https://qiita.com/zkangaroo/items/4bb48b405e1651f2e273)
[venvの起動(公式)](https://docs.python.org/3/tutorial/venv.html)
[VSCode周り](https://qiita.com/Avocado/items/3e71870815d6c54c1eea)
[jupyterのインストールと起動](https://qiita.com/k_ikasumipowder/items/bfd49b6e21dc82840756)