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を作成する

Python: Create New Blank Jupyter Notebookを選択します。

jupyterっぽい画面が表示されました。

HelloWorld(できない)
早速動かしてみましょう。
1セル目に以下を入力してShift+Enterで実行します。
print('Hello world!')

動かない原因
どうやらjupyterが利用しているtornadoというライブラリに不具合があるそうです。
参考:Jupyter Notebook with Python 3.8 – NotImplementedError
対策
tornadoのasyncio.pyを編集することで対策できました。
import asyncio # この下に追記
import sys
if sys.platform == 'win32':
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
もう一度実行してみましょう。

立てなかった方は、ポートが使用済みの可能性があります。
jupyterはデフォルトで8888ポートを使用します。
コマンドプロンプトにてnetstatを実行し、8888が使用されていないか確認してみてください。
それでもだめなら、環境構築に失敗しているかもしれません。
もう一度確認してみてください。
(考慮漏れなど、お気づきの点がございましたらコメントにてご指摘をお願いします!)
それでは、よいジュピ活を!
参考
本記事は、ほかの方々が書いている記事を参考にさせていただきました。
@simonritchie さんの記事
VS CodeのPython拡張がJupyterをネイティブサポートしたそうなので早速使ってみた。
@matuya さんの記事
python3.8 venv環境でjupyter notebook