PyCharm 2021.3 の新機能

Poetry のサポート、新しい FastAPI プロジェクトタイプ、リモート開発 ベータ、および新しい Jupyter ノートブックエクスペリエンス

私たちはユーザーのフィードバックに耳を傾け、コーディングをよりスムーズで生産的にする PyCharm 機能を提供するために一生懸命取り組んできました。 このリリースサイクルでは、Poetry サポート、新しい FastAPI プロジェクトタイプ、リモート開発サポートのベータ、および再設計された Jupyter ノートブックエクスペリエンスが導入されます。

Python

Poetry のサポート

Poetry は Python 開発者の間で人気がますます高まっており、JetBrains のトラッカーでは、そのサポートを要望する多数の課題が報告されていました。 The good news for Poetry users (and for those willing to try it) is that PyCharm now supports Poetry and provides code completion for your pyproject.toml files out of the box! Kudos to Koudai Aono, who developed the original plugin that has been merged into the PyCharm source code.

その他の改善:

ウェブ開発 Pro

FastAPI のサポート

FastAPI, a popular high-performance Python web framework for building APIs, is now supported in PyCharm. FastAPI プロジェクトタイプを選択すると、PyCharm がすべての依存関係をインストールして実行/デバッグ構成を作成します。 または、PyCharm で既存の FastAPI プロジェクトを開き、自分で FastAPI の実行構成を作成することも可能です。 PyCharm がユーザーの代わりにアプリケーションを検出して Uvicorn を実行します。

“test.http” ファイルを使用して HTTP エンドポイントをより簡単にテストできるようになりました。 GET、POST、およびその他のリクエストタイプをエディターから直接アプリケーションエンドポイントに送信できます。

FastAPI と Flask 用の新しいエンドポイントツールウィンドウ

FastAPI と Flask を使って Web アプリケーションを開発する場合、エンドポイントを操作する場面があるかと思います。 すでにお気づきかもしれませんが、このワークフローは大規模なプロジェクトでは面倒な場合があります。そこで、PyCharm 2021.3 では FastAPI と Flask プロジェクトタイプ用の新しい Endpoints(エンドポイント)ツールウィンドウを導入しました。

新規または既存プロジェクトの作業を開始すると、PyCharm がすぐにそのルートをスキャンし、それを Endpoints(エンドポイント)ツールウィンドウにリスト表示します。このウィンドウには URL のコード補完、ナビゲーション、リファクタリング機能が備わっています。 また、エンドポイントが分かりやすく表示され、ドキュメントに素早くアクセスできるようになっています。

その他の改善:

  • PyCharm でコード補完候補を取得する際、‘<’ を使って HTML タグを開始する必要がなくなりました。
  • 新しい Update ‘package name’ to the latest version('パッケージ名' を最新バージョンにアップデート)インスペクションを使用して、エディターから直接 package.json ファイルの npm パッケージを最新バージョンにアップデートできるようになりました。
  • URL を入力してから ES6 ファイルのインポートパスにクイックフィックスを使用することで、リモート ES6 モジュールをダウンロードできるようになりました。

新しい Jupyter ノートブックエクスペリエンスPro

データサイエンス分野に従事するソフトウェアエンジニア向けの PyCharm 改善に真剣に取り組み、PyCharm Pro における Jupyter ノートブックのエクスペリエンスを改善しました!

新しいノートブック UI

ノートブックのサポートがよりきめ細やかになりました。 PyCharm に初期状態で提供しているのは従来の Jupyter ノートブック UI ですが、IDE に求められる自動インポート、コード補完、リファクタリングといったすべての強力なツールが備わっています。

使用頻度の高いショートカット

Shift+Enter によるセルの実行、キー入力 1 回でのコマンドとエディターモードの切り替え、方向キーによるセル間の移動など、標準的な Jupyter のショートカットをすべてサポートするようになりました。

対話型出力

PyCharm Pro は Plotly / Bokeh / Altair / ipywidgets などの一般的な科学計算技術ライブラリで使用されている静的な出力と JavaScript ベースの出力の両方を完全にサポートするようになったほか、DataFrame を手厚くサポートしています。 その場で DataFrame を調べたり、専用のタブで開いたりできます。

デバッグ機能

Jupyter ノートブック内でデバッグすると、ノートブックのデバッグエクスペリエンスが向上します。 ブレークポイントでの停止、コードのステップ実行、変数の状態の閲覧と管理など、さまざまな操作を行えます。

リモート開発 ベータ Pro

PyCharm Pro が JetBrains Gateway を使用したベータ版のリモート開発ワークフローをサポートするようになりました。 PyCharm ユーザーは世界中のどこからでもリモートマシンに接続し、ローカルで実行しているような感覚で PyCharm のバックエンドを実行することで、リモートの計算能力を利用することができます。

ウェルカム画面にある Remote Development(リモート開発)をクリックし、Connect via SSH(SSH 経由で接続)を選択してウィザードに従って資格情報を入力すれば、接続を確立してサーバー上の IDE をダウンロードすることができます。 この機能はベータであるため、フィードバックをお寄せいただけると幸いです。

詳細については、ドキュメントをご覧ください。

ユーザーエクスペリエンス

一般的な Python パッケージ用共有インデックスのダウンロード Pro

Numpy、Pandas、Matplotlib、Sqlalchemy、Scikit-image、Plotly、Scipy などの PypI で一般的なパッケージのユーザーは、事前作成済みのインデックスをダウンロードすることで IDE のインデックス作成時間を短縮できます。 これらの共有インデックスは PyCharm のインストール物には含まれていないため、ダウンロード前に IDE から権限を求められます。

Run(実行)ツールウィンドウの分割

Run(実行)ツールウィンドウをタブに分割して、複数の構成を同時実行してそれぞれの結果にアクセスできるようになりました。 Run(実行)ツールウィンドウ内のハイライトされた領域にタブをドラッグアンドドロップするだけで分割されます。

機能トレーナー: 新しいオンボーディングツアーと Git レッスンシリーズ

PyCharm を初めて使用するユーザーや使用方法を復習したいユーザーのために、IDE の機能トレーナーでオンボーディングツアーと PyCharm の Git 機能のレッスンを使用できるようにしました。 これを試すには、ウェルカム画面の ‘Learn PyCharm’(PyCharm の学習)をクリックするか、IDE のメインメニューから Help(ヘルプ)> Learn IDE(IDE の学習)をクリックしてください。

デバッガーでの式の評価

このリリースでは、Evaluate(評価)機能がより見つけやすくなりました。 ウォッチを使用せずに、Debug(デバッグ)ツールウィンドウの Evaluate(評価)フィールドに素早くアクセスできるようになりました。

その他の改善:

  • インデックス作成中に実行構成を作成して編集できるようになりました。
  • Python パッケージをインストール中の失敗に関する情報がより詳細になったため、好ましくない問題を解決するための手がかりが増えました。
  • Markdown リストで、PyCharm による自動番号付けと次行のインデント挿入を無効にできるようになりました。 Preferences(環境設定)/Settings(設定) > Languages & Frameworks(言語とフレームワーク) > Markdown に移動し、Automatic assistance in the editor(エディターの自動支援)を無効にしてください。
  • 複数のセルを Python コンソールの実行キューに追加できるようになりました。 PyCharm が先行の実行が完了するまでユーザー操作をブロックしなくなりました。
  • Preferences(環境設定)/Settings(設定)| Tools(ツール)| SSH Configurations(SSH 構成)で、SSH 構成に HTTP または SOCKS プロキシサーバーを指定できるようになりました。

バージョン管理

バージョン管理設定の再構成

VCS の設定を再構成し、必要な項目をより見つけやすくしました。 Preferences(環境設定)/ Settings(設定)| Version Control(バージョン管理)に使用可能なすべての設定がリスト表示されるようになりました。このリストは VCS 構成の出発点として使用できます。

セクション内の設定は、最も重要なプロセスである Commit(コミット)、Push(プッシュ)、および Update(更新)で構成されています。 さらに、Directory mappings(ディレクトリマッピング)用に個別のノードを追加し、バックグラウンド操作がデフォルトでオンになるように変更されています。

リモートブランチ対応の Checkout and Rebase onto Current(チェックアウトして現在のブランチでリベース)

選択したブランチをチェックアウトして、現在チェックアウトされているブランチの上でリベースする必要がある場合、Checkout and Rebase onto Current(チェックアウトして現在のブランチでリベース)アクションを使用できます。以前は、ローカルブランチのみで使用できる機能でしたが、 PyCharm 2021.3 では、リモートブランチでも使用できるようになっています。

新しい Push All up to Here(ここまでのすべてをプッシュ)アクション

確信のあるコミットのみをプッシュし、それ以外を後でプッシュするように残しておく新しい Push all up to here(ここまでのすべてをプッシュ)アクションを使用できるようになりました。 Git ツールウィンドウの Log(ログ)タブで選択したコミットまでのコミットをプッシュすることができます。 このアクションを使用するには、最後にプッシュするコミットを選択し、それを右クリックしてコンテキストメニューを呼び出し、新しい Push All up to Here(ここまでのすべてをプッシュ)アクションを選択してください。

データベース Pro

新しい Database Diff(データベース差分)ウィンドウ

新しいデータベース差分ウィンドウがコンテキストメニューから使用できるようになりました。 このウィンドウにはより優れた UI が備わっており、同期を実行した後に得られる結果が明確に表示されます。

発生しうる結果を色で示した凡例が表示されます。

  • 緑、斜体: オブジェクトが作成されます。
  • グレー: オブジェクトが削除されます。
  • : オブジェクトが変更されます。

結果スクリプトは Script preview(スクリプトのプレビュー)タブに表示されます。この結果スクリプトは新しいコンソールで開くことも、このダイアログから実行することもできます。 このスクリプトは、右にあるデータベース(ターゲット)を左にあるデータベース(ソース)のコピーにする変更が適用されます。

Script preview(スクリプトプレビュー)タブに加えて、データベース差分ウィンドウの下のペインに Object Properties Diff(オブジェクトプロパティ差分)タブと DDL Diff(DDL 差分)タブがあります。 これらのタブには、元のデータベースとターゲットデータベースに含まれるオブジェクトの特定のバージョン間の差分が表示されます。

データエディターの集計

セル範囲の Aggregate(集計)ビューを表示できるようになりました。 データ管理に役立ち、余計なクエリを書く手間を省ける待望の機能です!

この機能追加により、データエディターに Excel や Google スプレッドシートにより近い性能と使いやすさが備わりました。 この機能を使用するには、ビューに表示するセル範囲を選択し、右クリックして、メニューから Show Aggregate View(集計ビューの表示)を選択してください。

その他の改善:

  • CSV ファイルを開くかインポートした際、PyCharm が列の名前を含む見出しとなっている先頭行を自動的に検出するようになりました。

サポート終了

Mako、Buildout、および Web2Py のサポート終了

From PyCharm 2021.3 onwards, there will no longer be support for Mako, Buildout, or Web2Py.