はじめてのPyCharm + Jupyter Notebook(その1)
※このブログ記事で紹介している内容は PyCharm 2021.3 以前の古いユーザーインターフェースを紹介しています。2021.3 以降 PyCharm の Jupyter Notebook 編集画面は、 この記事のような In / Out が左右に表示される形式(Split view)ではなく、(通常のJupyter Notebook と同様な)上下に表示される形式に変更されています。
現在の PyCharm における Jupyter Notebook の連携については
PyCharm Professional オンラインヘルプ: Jupyter ノートブックのサポート
ブログ記事:PyCharm で Jupyter ノートブックを活用する 7 つの方法
をご覧ください。
—
こんにちは。JetBrains堀岡です。
PyCharm 2019.2からJupyter Notebook連携が新しくなったことはご存知でしょうか? Jupyter, PyCharm and Pizza」
でさらっと紹介されていますが、初めての方にお試しいただけるよう、セットアップや基本機能について、もう少し詳しく日本語で紹介したいと思います。はじめてのPyCharm + Jupyter Notebook(その2)と合わせてご覧ください。
PyCharmの情報源
- PyCharm 公式:令和元年11月末よりJetBrainsの公式サイトが多言語対応し、日本語🇯🇵版もできました🎉今後、新機能や機能一覧も英語サイトに合わせて随時更新していきます!
- PyCharm オンラインマニュアル:英語/日本語
- PyCharmブログ(英語)
- PyCharmサポート(英語)
macOS上でPyCharm+Jupyter Notebookを試す
テスト環境
本記事作成にあたり、以下の環境で試しています。
- OS: macOS Catalina 10.15.1
- Python環境: Anaconda 2019.10/Python 3.7 こちらからダウンロード。conda –version すると4.7.12。(追記 2021/3/4)2020年4月のAnacondaの商用ライセンス形態の変更以降、miniforgeの利用も増えているようです
- PyCharm Professional 2019.3 RC(Jupyter Notebook連携はProfessional版のみの機能となります。お試しになりたい方はこちらから入手ください。)
Anacondaのインストールについて補足
少し前になりますが2019年4月にJetBrainsとAnacondaの戦略的パートナーシップが発表 されています。2019年11月現在、AnacondaをインストールするとAnaconda Plugin入りのPyCharmがオススメされるようになっています。ただし、既にPyCharm Professionalをお使いの方はPyCharm for Anacondaや追加プラグインのインストールは不要です。
PyCharmプロジェクト作成とPythonインタープリタの指定
PyCharmでJupyter Notebookを実行するためにはPyCharmのプロジェクトを作成する必要があります。PyCharmを起動して「Create New Project」を選択します。
PyCharmの新規プロジェクト作成画面では、Project InterpreterでConda仮想環境(プロジェクトで使用するPython環境)を新規作成するか、既存のconda環境を再利用するか選択することができます。
以下の例では、「New environment …」を選択し(Python管理環境としてCondaが選択されることも確認ください)プロジェクト専用のConda仮想環境を作成します。
(補足)Conda executableの場所はmacOS Catalina以降「 ~/opt/anaconda3」に変更になっています。macOS Catalinaに移行されていない方はパスが「/anaconda3」等になっているはずです。
プロジェクトを作成できたら、PyCharm画面下部のTerminalから「conda env list」コマンドで
- プロジェクト用のConda仮想環境が生成されていること
- 生成されたConda仮想環境がactivateされていること(「*」がついている)
を確認します。Conda仮想環境に問題があると、terminalを開いたタイミングで生成されたpython環境がactivateされないことがあるのでご注意下さい。
フォルダ構成、解析データの準備
さて、プロジェクトが作成できたので、英語ブログ同様、データ用のフォルダ(data)とnotebook用のフォルダ(notebooks)を作成します。
「JupyterPizza(プロジェクト)を選択」後「右クリック」 または 「command+n」 でポップアップ表示し、「Directory」を選択 でフォルダを作成できます。
解析データも英語ブログに従い、KaggleからPizza Restaurants and the Pizza They Sellのデータを取ってきます。zipファイルを展開してdataディレクトリ以下に置きます(dataフォルダにpizza-restaurant…フォルダをコピー&ペースト)。
コピーされたCSVファイルを開いてみます。CSV用のプラグインをインストールするか、「Shift連打 または Shift + Cmd + A」「”table”を入力」で表示される「Edit as Table」アクションを実行すると、CSVファイルを表形式で確認することができます。
以下は「Edit as Table」アクションによる表示例です。
Notebookファイルの作成とJupyter Serverの起動
Jupyter Notebookファイルの作成と編集
次にJupyter Notebookファイルを作成します。画面右Projectペインのnotebooksフォルダを「右クリック」または「Cmd + N」でポップアップを表示し、Jupyter Notebookファイルを作成します。
pizza.ipynbファイルを作成しました。ファイルを開き、以下のコードを足します。csvファイルのパスが異なる場合は調整してください。PyCharm 2019.3からread_csvに指定するファイルパスの補完もできるようになっています😎
import pandas as pd df = pd.read_csv("../data/pizza-restaurants-and-the-pizza-they-sell/Datafiniti_Pizza_Restaurants_and_the_Pizza_They_Sell_May19.csv") df.head()
すると、以下の画面のように
- 右上に”Install jupyter package”というメッセージ
- コードの中”import pandas”に赤色で波線
が表示されます。
今回の場合、Conda仮想環境にjupyterやpandas packageが入っていないので、このようなメッセージが表示されます。”Install jupyter package”メッセージをクリックするとjupyterのinstallが開始されます。PyCharmはインストールされたパッケージ情報を解析するので、この処理にはしばらく時間がかかります。
pandasのエラーの方は、赤波線をクリックして、「option + Enter」または赤電球アイコンをクリックするとPyCharmが「Install package pandas」を提案しますので、こちらを選択し、インストールします。
(補足)Packageのインストール・確認について
ただし、このようにPythonのpackageをPyCharmが指摘する毎に1つずつインストールすると、「パッケージのインストール => PyCharmのindex処理待ち」が繰り返されるので、もし、導入すべきパッケージが分かっている場合は、面倒に思えるかもしれません。その場合は、PyCharmの起動直後にPyCharmのTerminalから「conda install <package1> <package2> …」でインストールしたほうが効率的でしょう(macOSのTerminalを使う場合は、conda activate <環境名>の実行を忘れずに! さもない別のPython環境にパッケージをインストールすることになります)。
または、インストール済みパッケージ一覧やパッケージの追加・削除はPreference – Project – Project Interpreterから行うことができるので、こちらを活用してもよいでしょう。
Jupyter Notebookの実行
ということで、パッケージ関係のメッセージが消えたら、エディタペインの緑色の三角をクリックし、「Run Cell」を選びセルを実行します。
(Jupyter Serverが起動されていない状態なので)PyCharmがJupyter Serverを起動し、Notebookが実行されました🎉
Run Cellの代わりに、セル上にブレークポイントをセットし、デバッグ実行(Debug Cell)も可能です。
複雑なコードを書いていたり、期待通りの結果が出ない場合、簡単にデバッグできるのはPyCharmを使用するメリットの1つでしょう。
Jupyter Notebook編集・実行画面の説明
オンラインヘルプのJupyter Notebookのセクションに詳細な説明がありますが、PyCharm上でのJupyter Notebookの基本操作を見ていきたいと思います。
セルの編集・追加
PyCharm上では編集画面左の「+」ボタンでセルを追加することができます。
または、以下のコメント行を追加すると新しいセルとして認識されます。
その他の詳細はオンラインヘルプJupyterノートブックファイルの編集をご参照ください。
表示領域・対象の調整
PyCharmのJupyter Notebookの基本編集画面は、Editor(コード編集)領域とPreview(実行結果を表示)領域が横並びで表示されるので、表示のための横幅が必要です。「Command + 1」または画面左端の[1: Project]をクリックすると、ファイルビューが非表示になりコード編集エリアと結果(Preview)エリアを広く表示することができます。
画面右上のアイコンによりコード編集画面・(実行結果)プレビュー画面の表示方法の選択・調整ができます。
それぞれのアイコンの説明はマニュアルに記載されています。クリックして表示の違いを試してみて下さい。
表示ボタンの代表的な使い方として、分析・コーディング中にコードを実行しながらプレビュー画面を見るには、以下の組み合わせが良さそうです。
一方で、ブラウザ版と似たUIでセルのコードを見ながら結果の確認を主に行いたい場合は、以下の組み合わせを利用すると良さそうです。
Jupyter Notebookの操作
コード編集画面左上の黄色電球アイコンをクリックすると、Jupyter Serverの起動・停止や、全てのセルのクリア(Clear outputs)、様々なパターンのセル実行が可能です。
電球アイコンの隣の緑色の二重三角アイコンで、全てのセルを実行(Run All)できます。前述のClear Outputsと合わせて、クリーン再実行する際に利用します。
Jupyterツールウィンドウ
Jupyter Notebookを実行するとPyCharm画面下部にJupyter専用のツールウィンドウが表示されます。タブごとに様々な情報が表示されます。以下簡単に紹介します。
Variables タブ
Variablesタブでは最後に実行したセルの変数情報を確認することができます。あえてデバッガを起動しなくても、セル単位で実行しながら、気になる変数を確認できれば十分という場合に便利です。ウィンドウ内でタイプすることにより、検索も可能です。
Server: <プロジェクト名> タブ
起動したJupyter Serverの情報は画面下部のJupyterツールウィンドウの「Server: <プロジェクト名>」タブに表示されるログから確認することができます。また、Server: <プロジェクト名> タブでは、Jupyter Severの起動・停止を行うことができます。
ログ中の「http://localhost:8888…」をクリックすることによりJupyter Serverにブラウザから同じカーネルを使っているJupyter Severにアクセスすることも可能です。また、PyCharm 2019.3よりIDE外でNotebookが変更された場合、IDEが変更を検出し、同期するようになりました。ブラウザ上の結果のほうが見やすいケースや、ブラウザからNotebookを少し変更して試してみたいという事ももあると思うので、必要に応じて合わせて利用すると良いでしょう。
Jupyter Notebook開発における制限事項
PyCharmを用いてJupyter Notebook開発を行う際、通常の.pyファイル開発の全ての機能が使えるわけではありません。以下に代表的な制限事項を紹介します。
- PY-30784 .pyが存在せずコードがindex化されないため、.ipynbファイルの中のシンボルはrefactoringやfind usageの対象外
- PY-35591 エディタのパフォーマンス問題
- サポートされているテーマ(配色)はLight(白系)またはDarculaのみ
- その他既知バグやfeature request(機能追加リクエスト)は課題トラッカーでご確認ください。 https://youtrack.jetbrains.com/issues/PY?q=jupyter%20%23Unresolved 安定性の改善やリモート環境に対する充実したサポート等、様々な項目が挙げられています😅自分が遭遇したバグで早期対応を希望するものや、望んでいた機能があればぜひvoteしてください。
まとめ
PyCharm で Jupyter Notebook ってどんな感じなのか?初めての皆さんに簡単にお試しいただき、基本機能をご理解いただけるよう、セットアップから実行まで、私自身も初めて試しながら記事を書きました。次回のブログはじめてのPyCharm + Jupyter Notebook(その2)では、英語ブログで紹介されているNotebookを使って、チャートの表示等も試しますので、ぜひ合わせてご覧ください。
簡単に試せると思いますので、PyCharmを使っていてJupyter Notebookを試したい方も、Jupyter Notebookを使っていて、よりコードを生産的に書きたい方は PyCharm Professional をお試しいただければと思います。
Jupyter Notebook関連の全ての機能をご覧になりたい方は以下のオンライン・ヘルプをご覧ください。
使いこなしている皆さんからのコメント・フィードバックは大歓迎ですのでお待ちしています🙇🏻♂️