WSL+VSCode上でJupyter(Python)を使う
投稿日:2020年1月1日 更新日:
WSL (Windows Subsystem for Linux) 上にPythonを入れ、VSCode (Visual Studio Code)で動かす環境構築をしたときの流れをメモ。WSLとVSCodeはすでにインストール済みであると仮定して話を進めます。
環境
- OS: Windows 10 64bit
- WSL: Ubuntu 18.04.3 LTS
- VSCode: version 1.41 (Windows 10上にインストール)
WSL上にAnacondaをインストール
WSL上にPython (+Jupyter)をインストールしますが、ここではpyenvを入れた上でAnacondaを導入する手法をとっています。AnacondaにはPythonとJupyterも含まれる、よく使われるパッケージ類が含まれていますのでAnacondaを入れればWSL上でPythonが一通り使えるようになります。
pyenvのインストール
WSLの端末(ターミナル)上で以下のコマンドを打ち込むことで、pyenvが入ります。
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
Anacondaのインストール
pyenvを入れたあとは、pyenvを使ってAnacondaをインストールします。入れるものは基本的に最新版で構いませんが、私の場合、当時最新版のAnaconda 3-2019.10ではJupyterが動かなかったため、anaconda 3-2019.07を入れています。
pyenv install -l | grep anaconda # 最新版を確認
pyenv install anaconda3-2019.07
pyenv rehash
pyenv global anaconda3-2019.07 # メインに使うpythonとしてanacondaを設定
echo 'export PATH="$PYENV_ROOT/versions/anaconda3-2019.07/bin/:$PATH"' >> ~/.bashrc
source ~/.bashrc
VSCodeに拡張機能(Remote-WSLとPython)を入れる
Remote-WSLの導入
VSCodeには、WSL内のファイルに直接アクセスできる拡張機能(Extensions)があります。それがRemote-WSLです。VSCodeを起動したら、左側のExtensionsアイコン(3+1つの正方形)を選び、”wsl”と検索すると”Remote-WSL”が見つかります。これをインストール(install on WSL: Ubuntu)し、VSCodeを再起動します。
※下の画像では、既にRemote-WSL導入済み
これでRemote-WSLがVSCodeに導入できました。これを使うにはCtrl+Shift+pを押し、”wsl”と入力すると”Remote-WSL: New Window”が出てくるので、これを選びます。
新しく開いたウィンドウの左下の緑色の部分に”WSL: Ubuntu”と表示されていれば、WSL内のファイルが操作できるようになっています。
Python Extensionの導入
Remote-WSLが起動しているVSCode上で、左側のExtensionsアイコン(3+1つの正方形)を選び、”python”と検索します。Python(Microsoft製)が見つかったらこれをインストールします。
インストールができたら、下の青色バー内の”Python 3.x.x…”の部分をクリックし、”Python 3.x.x… (anaconda3-x.x: conda)”を選びます。
以上で、VSCodeでWSL上のpythonを使うことができるようになりました。
動作確認
実際にWSL上のPythonをVSCodeで動かしてみます。今回使うのはJupyter NotebookというインタラクティブにPythonのコードを実行することができる機能です。本来、ファイルの拡張子は
- *.py : Pythonのソースコードが記述されたファイル
- *.ipynb: Jupyter Notebookで取り扱うファイル
となっており、Jupyter Notebookで作成したファイルは一度変換しないと純粋なpythonファイルとして扱うことができません。しかしVSCodeでは、*.pyファイルに対して直接Jupyter Notebookの機能を使うことができるため、取り扱いが便利です。
テストファイルの作成、実行
ファイルを作成するディレクトリとして、WSL上の場所を指定してみます。VSCodeの左下の緑色の場所に”WSL: Ubuntu”と表示されている状態で、左上のExplorerアイコンを押し”Open Folder”ボタンを押します。するとWSLのディレクトリを指定できるので、ホームディレクトリを指定してみます。
WSL上のディレクトリを指定できたので、新規ファイル作成アイコン(下画像)を押し”test.py”というファイルを作成してみます。
そしてファイル内に
#%%
print("hello world!")
と記述すると、%##の上に”Run Cell”と表示されるはずなので、これをクリックします。 すると右側に実行した結果が表示されるはずです。
“hello world!”と表示されていたら、うまく動いたということになります。
セルについて
上記のPythonコードの例では#%%という記述があります。これによってコードを区切ってできたかたまりをセルといいます。セルごとにコードを走らせることができ、”Run Cell”をクリックすると、その直下のセル内のコードが実行されるということです。ショートカットキーは以下の通りとなります。
- Shift + Enter: カーソルのいるセルを実行し、下のセルにカーソル移動
- Ctrl + Enter: カーソルのいるセルを実行し、カーソルは移動しない
- Alt + Enter: カーソルのいるセルを実行し、下にセルを挿入(#%%を書き込む)
最後に
もともとテキストエディタのAtomを使ってJupyterを動かしていましたが、使っている間にモッサリしてきました。最近PCの環境再構築する機会がありましたので、これを機にVSCodeに乗り換えてみました。まだ使ってから日が浅いので、これからいろいろと試してみたいと思います。