Python
pyenv
Windows10
WSL
Pipenv

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

!python 3.7用に記載を修正(2018.7.21)

Windows 10でモダンでlinuxなpython環境を用意

これは何?

Mac前提だけど良記事な『2018年のPythonプロジェクトのはじめかた』の前半を、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プロジェクトのはじめかた』を参照)

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

① git経由でpyenvを導入

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.0)をビルドし、ディフォルトにする

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.0
pyenv global 3.7.0

③ pipenvを入れる

pip install --upgrade pip
pip install pipenv

あとは、『2018年のPythonプロジェクトのはじめかた』にしたがって、モダンな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上のサーバを使ったりなどなど。