2020/1/6 venvとvirtualenvを混同していたためvirtualenvについて修正
venvとvirtualenvは別物でした...!
何の記事?
VSCodeがjupyterにネイティブ対応
したそうで、webブラウザ
が無くても
ipynb
を操作できるようになっていました。
本記事は「じゃあ使ってみよう!」と思いpython3.8
で環境を作ったところ、
詰まった部分があったので、「こうやるとうまくいくよ」という共有の記事です。
anacondaではなくvirtualenv向けの環境を作ります。
環境を作る(コマンドプロンプトで操作)
環境
OS : Windows10
python : 3.8
editor : VSCode 1.40.2
VSCodeに拡張機能のpython
を入れておいてください。
ついでにIntelliCode
も入れておくとハッピーです。
まずはvirtualenv
virtualenv
が入っていない場合はpip
しましょう。
>pip install virtualenv
そしたら、仮想環境を作成します。
>mkdir virtualenv
>cd virtualenv
>py -m virtualenv jupyter_env
~~~省略~~~
done.(これが表示されたら完了)
そしたら作った環境を起動します。
>jupyter_env\Script\activate
(jupyter_env)>
プロンプト>
の前に(jupyter_env)
が表示されていれば起動完了です。
ここからはVSCodeで作業します
コマンドプロンプトからVSCode
を起動しましょう。
(jupyter_env)>code .
VSCodeが起動したら、ターミナルをCtrl
+ Shift
+ ~
で表示させます。
pipをアップグレードする
念のため。
(jupyter_env)>py -m pip install --upgrade pip
jupyterをいれる
pip
していきましょう。ほかに必要となるライブラリも一緒に入ってくれます。
(jupyter_env)>pip install jupyter
いっぱいはいります。
VSCodeでipynbを作成する
Ctrl
+Shift
+p
を押してコマンドパレットを開きます。
開いたら、jupyter
と入力すると、以下が出てきます。
Python: Create New Blank Jupyter Notebook
を選択します。
jupyterっぽい画面が表示されました。
続いてpythonインタープリタ
を選択します。
Ctrl
+Shift
+p
を押してコマンドパレットを開きます。
開いたら、select
と入力すると、以下が出てきます。
Python: Select Interpreter
を選択します。
作った環境名が出てきますので、選択します。
HelloWorld(できない)
早速動かしてみましょう。
1セル目に以下を入力してShift
+Enter
で実行します。
print('Hello world!')
動かない原因
どうやらjupyterが利用しているtornado
というライブラリに不具合があるそうです。
対策
tornado
のasyncio.py
を編集することで対策できました。
import asyncio # この下に追記
import sys
if sys.platform == 'win32':
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
もう一度実行してみましょう。
Shift
+ Enter
で実行します。
やった!スタート地点に立つことができましたね!
立てなかった方は、ポートが使用済みの可能性があります。
jupyterはデフォルトで8888
ポートを使用します。
コマンドプロンプトにてnetstat
を実行し、8888
が使用されていないか確認してみてください。
それでもだめなら、環境構築に失敗しているかもしれません。
もう一度確認してみてください。
(考慮漏れなど、お気づきの点がございましたらコメントにてご指摘をお願いします!)
それでは、よいジュピ活を!
参考
本記事は、ほかの方々が書いている記事を参考にさせていただきました。
@simonritchie さんの記事
VS CodeのPython拡張がJupyterをネイティブサポートしたそうなので早速使ってみた。