89
101

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-05-04

! (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プロジェクトのはじめかた』の前半を、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を導入

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

89
101
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
89
101

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?