Help us understand the problem. What is going on with this article?

wsl + pyenv + pipenv + JupyterNotebook でWindowsにpython環境構築

wsl + pyenv + pipenv + JupyterNotebook でWindowsにpython環境構築

目次

はじめに

Windowsでpython環境を構築します。

Windows上でのpython環境構築にはいくつかオプションがあり、
目的によって、整えるべき環境があると思います。

今回の記事では、"pythonおよびパッケージのバージョン管理を柔軟に行い、
jupyter notebookで可視化しながらコーディングしたい"
という目的に沿った環境構築方法を紹介致します。


環境の構成要素の概要は以下です。

  • wsl
  • pyenv
    • 複数バージョンのpython切り替えるツール
    • 2系と3系での使い分けなど
  • pipenv
    • pythonプロジェクトの仮想環境、パッケージを管理するツール
  • Jupyter Notebook
    • データ分析でよく使われるツール。
    • ソースコードと実行結果(グラフをインラインで可視化などもできる)をまとめてみれる。

それでは順にやっていきましょう。

[目次へ]

wslの導入

まず、Linux環境をWindows上で構築するために、Windows Subsystem for Linux(wsl)を導入します。
以下の記事を参考に導入してください。

Windows Subsystem for Linuxをインストールしてみよう!


デフォルトのターミナルやプロンプトのデザインが気に入らない、という方はターミナルエミュレータや、bash以外のシェルに拡張してみましょう。
私はhyper+zsh+wslでWindows上のLinux環境を構築しています。

本題に戻ります。まず以下のコマンドを実行し、gitを使えるようにしましょう。

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install git


[目次へ]

pyenv pipenv の導入

次に、pyenvとpipenvを導入します。

pyenv

まず以下のコマンドでpyenvを導入しましょう。

$ sudo apt 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
$ 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

以上はbash前提でのコマンドです。
他のシェルを使用している場合、上記コマンドのbashrcをzshrc等に置換し実行してください。

インストールできたら、以下のコマンドでpyenvでインストール可能なpythonのバージョンを確認してみます。

$ pyenv install --list

pythonだけでなくanacondaやminiconda,pypyなどが見えると思います。

今回は、python 3.7.2と2.7.15をインストールしてみます。

$ pyenv install 3.7.2
$ pyenv install 2.7.15

pyenvでのバージョン切り替えを試してみます。

$ pyenv global 3.7.2
$ python -V
Python 3.7.2 
$ pyenv global 2.7.15 
$ python -V 
Python 2.7.15

python globalでpythonのバージョンを切り替える事が可能です。
また、python loocalで指定フォルダ内のみでのpythonバージョン切り替えも可能です。
以下、python3.7.2で環境を整備していきたいので、バージョンを3.7.2に戻しておきましょう。

$ pyenv global 3.7.2

pipenv

まず、以下のコマンドでpipenvを導入しましょう。

$ pip install pipenv

インストール出来たら、管理しやすいように仮想環境をカレントディレクトリ以下に作成するように設定しましょう。

$ echo 'PIPENV_VENV_IN_PROJECT=1' >> ~/.bashrc

それでは、python3.7.2の仮想環境を作成してみましょう。

以下のコマンドで、testフォルダ内に仮想環境を作成します。

$ mkdir test
$ cd ./test
$ pipenv install --python 3.7.2
Creating a virtualenv for this project… 
Pipfile: /home/user/python/pipenv_test/test/Pipfile
Using /home/user/.pyenv/versions/3.7.2/bin/python (3.7.2) to create virtualenv…
⠸ Creating virtual environment...Already using interpreter /home/user/.pyenv/versions/3.7.2/bin/python
Using base prefix '/home/user/.pyenv/versions/3.7.2'
New python executable in /home/user/python/pipenv_test/test/.venv/bin/python
Installing setuptools, pip, wheel...
done.
Running virtualenv with interpreter /home/user/.pyenv/versions/3.7.2/bin/python

✔ Successfully created virtual environment!

出力結果から、pyenvで導入したpython3.7.2で仮想環境を作成していることが確認できます。

testフォルダ内に仮想環境の.venv、パッケージ管理のためのPipfileとPipfile.lockが作成されます。

この仮想環境上でパッケージを導入する際には以下のコマンドでパッケージをインストールします。
その際にバージョン指定をすることも可能です。

$ pipenv install pandas==0.23 #パッケージのバージョン指定
$ pipenv install matplotlib

[目次へ]

jupyter notebook の導入

pythonを実行する仮想環境が整備できたので、続けてjupyter notebookを導入してきましょう。

$ pipenv install jupyter
$ pipenv run jupyter notebook
...

  To access the notebook, open this file in a browser:
        file:///home/user/.local/share/jupyter/runtime/nbserver-16793-open.html 
    Or copy and paste one of these URLs:
        http://localhost:8888/?token=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa       
     or http://127.0.0.1:8888/?token=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa       

以上のコマンドで仮想環境上のjupyterが立ち上がります。
表示されるURLをWEBブラウザで開くとjupyter notebookを確認できます。
使い方は下記リンク先などで確認してください。

【Jupyter Notebook】効果的な使い方を知ろう[Python/機械学習]

[目次へ]

jupyter notebookのカスタマイズ

エディタは機能と見た目が大事です。

カスタマイズしていきましょう。

機能

拡張機能のnbextensionを有効にしましょう。

$ pipenv run jupyter nbextensions_configurator enable --user
$ pipenv run jupyter contrib nbextension install --user
$ jupyter notebook

以上のコマンドを実行すると、jupyter notebook 上にNeextensionsというタブが出現します。
例えば、Hinterlandを有効にすると補完が効くようになります。
他にも便利な機能があるので試してみてください。

デザイン

jupyter notebookが起動していない時に、以下のコマンドを実行して

$ pipenv install jupyterthemes
$ pipenv run jt -t monokai -f hack -fs 80 -tfs 80 -ofs 80 -T -N
$ jupyter notebook

立ち上がったjupyter notebookを確認すると、デザインが変更されているのが確認できると思います。
元に戻したいときには、以下のコマンドを実行してください。

$ pipenv run jt -r
$ pipenv run jt -dfonts

jupyter notebookのデザインをもっと自分好みに凝ったものにしたい、
という方は、jupyterthemesでググってオプションを調べてみてください。

[目次へ]

最後に

今回初めてのQiitaへの投稿でした。
いままでろくにアウトプットしたことがなく、拙い文章になってしまいましたが、今後も継続的に投稿を続け
文章力を高めていきたいなと思っています。
内容についてや文章についての忌憚ないコメントお待ちしております!

[目次へ]

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away