Windows10(WSL)で、2018年的Pythonプロジェクト（①pyenv/pipenvの導入）

! (2018.7.21)python 3.7用に記載を修正
! (2018.11.4;debian向け付記） zlibがないと怒られた時は以下など:

>sudo apt-get install zlib1g

! (2019.2.4)pyenv自体のアップデート方法は、以下を参考に:
https://qiita.com/moroku0519/items/1c029659de4f169cd09a

#Windows 10でモダンでlinuxなpython環境を用意
##これは何？
Mac前提だけど良記事な[『2018年のPythonプロジェクトのはじめかた』](https://qiita.com/sl2/items/1e503952b9506a0539ea)の前半を、windows 10上のWSL（Windows Subsystem for Linux）で試してみた記録。

##背景
社内事情により、管理権限者にwindows 10にwindowsストアからWSL用のLinux(debian)を入れてもらった上で、windows 10の一般ユーザーがWSL版debianでモダンなPythonプロジェクトをさくっとはじめられるかお試ししたかった。

##結論
WSL版debianでは、コマンドラインから10行くらいコマンドを叩けばモダンなモダンなPython環境を用意できる。
WSL版ubuntuも同様にいけるはず。

WSL版debianについては、以下の記事などを参照のこと
http://gihyo.jp/admin/clip/01/linux_dt/201803/07

#(抜粋)2018年以降のモダンなPythonプロジェクト

- PythonにPipenvという公式推奨の高機能なパッケージマネージャー(2018年には、npmのような開発体験が得られるようになってきている）
- Pipenvとpyenvを併用すると、プロジェクト毎に指定バージョンのPythonを自動でインストールできる）
- Pipenvは、プロジェクトをディレクトリ単位で管理するのが基本（具体的なところは、[『2018年のPythonプロジェクトのはじめかた』](https://qiita.com/sl2/items/1e503952b9506a0539ea)を参照）

# WSL版debian/ubuntuでpyenvが動くまで。

①　git経由でpyenvを導入

```.sh
sudo apt update
sudo apt upgrade
sudo apt install git
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
pyenv
```

②　依存関係のあるbuild-essentialなどを入れて、pyenvでpython(3.7.1)をビルドし、ディフォルトにする

```.sh
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev
sudo apt-get install libffi-dev
pyenv install 3.7.1
pyenv global 3.7.1
```

③　pipenvを入れる

```.sh
pip install --upgrade pip
pip install pipenv
```

あとは、[『2018年のPythonプロジェクトのはじめかた』](https://qiita.com/sl2/items/1e503952b9506a0539ea)にしたがって、モダンなpipenvライフをおくろう。



ちなみに、upgrade pipしてなくても、pipenv は入るが、以下のようにpipを新しくしてねと言われるので、先にupgrade pipしておく方が良さそう。


>dev@DESKTOP-1BM7JIS:~/min$ pip install pipenv
Collecting pipenv
  Downloading https://files.pythonhosted.org/packages/2c/01/37a5867a47d52856b077d0faa561b791cb6e6e3e9410837b6d62f569c1e6/pipenv-11.10.1-py3-none-any.whl (6.3MB)
    100% |████████████████████████████████| 6.3MB 213kB/s
Collecting virtualenv-clone>=0.2.5 (from pipenv)
  Downloading https://files.pythonhosted.org/packages/6d/c2/dccb5ccf599e0c5d1eea6acbd058af7a71384f9740179db67a9182a24798/virtualenv_clone-0.3.0-py2.py3-none-any.whl
Collecting virtualenv (from pipenv)
  Downloading https://files.pythonhosted.org/packages/ed/ea/e20b5cbebf45d3096e8138ab74eda139595d827677f38e9dd543e6015bdf/virtualenv-15.2.0-py2.py3-none-any.whl (2.6MB)
    100% |████████████████████████████████| 2.6MB 508kB/s
Requirement already satisfied: pip>=9.0.1 in /home/dev/.pyenv/versions/3.6.5/lib/python3.6/site-packages (from pipenv)
Collecting certifi (from pipenv)
  Downloading https://files.pythonhosted.org/packages/7c/e6/92ad559b7192d846975fc916b65f667c7b8c3a32bea7372340bfe9a15fa5/certifi-2018.4.16-py2.py3-none-any.whl (150kB)
    100% |████████████████████████████████| 153kB 1.1MB/s
Requirement already satisfied: setuptools>=36.2.1 in /home/dev/.pyenv/versions/3.6.5/lib/python3.6/site-packages (from pipenv)
Installing collected packages: virtualenv-clone, virtualenv, certifi, pipenv
Successfully installed certifi-2018.4.16 pipenv-11.10.1 virtualenv-15.2.0 virtualenv-clone-0.3.0
You are using pip version 9.0.3, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.


#終わりに
Windows 10の一般ユーザー権限でdebian使って業務（社内データサイエンティスト？）をしなければいけない立場なもので、もう少し環境整備をお試ししたい。
spacemacsなどを入れたり、AWS上のサーバを使ったりなどなど。