| IPython | |
|---|---|
IPythonシェル | |
| 原作者 | フェルナンド・ペレス[ 1 ] |
| 開発者 | ブライアン・E・グレンジャー、ミン・ラガン=ケリー、ポール・イワノフ、トーマス・クライバー、マティアス・ブッソニエ |
| 初回リリース | 2001年[ 1 ] (2001年) |
| 安定版リリース | |
| リポジトリ | |
| 書かれた | Python、JavaScript、CSS、HTML |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | シェル |
| ライセンス | BSD |
| Webサイト | iPython |
IPython(Interactive Python)は、複数のプログラミング言語でインタラクティブなコンピューティングを実現するコマンドシェルです。元々はPythonプログラミング言語用に開発され、イントロスペクション、リッチメディア、シェル構文、タブ補完、履歴機能を備えています。IPythonは以下の機能を提供します。
IPythonはNumFOCUSの財政支援を受けているプロジェクトです。[ 3 ]

IPythonは、並列分散コンピューティングを実現するアーキテクチャに基づいています。IPythonは、並列アプリケーションを対話的に開発、実行、デバッグ、監視することを可能にするため、IPythonの頭文字の「I」(Interactive)は「対話型」を意味します。[ 4 ]このアーキテクチャは並列性を抽象化し、IPythonが様々な並列性スタイルをサポートできるようにしています。[ 5 ]例えば、以下のようなものです。
IPython 4.0のリリースにより、並列計算機能はオプションとなり、ipyparallel Pythonパッケージとしてリリースされました。ipyparallelの機能のほとんどは、Daskなどのより成熟したライブラリによってカバーされています。
IPythonは、 NumPyやSciPyなどのSciPyスタック[ 6 ]ライブラリを頻繁に利用します。これらのライブラリは、多くのScientific Pythonディストリビューションの1つと一緒にインストールされることが多いです。[ 6 ] IPythonは、 SciPyスタックのいくつかのライブラリ、特にmatplotlibとの統合を提供し、 Jupyterノートブックで使用するとインライングラフを生成します。Pythonライブラリは、IPython固有のフックを実装して、豊富なオブジェクトの表示をカスタマイズできます。例えば、 SymPyは、IPythonコンテキスト内で使用される場合、数式をLaTeXでレンダリングするように実装しており、PandasデータフレームはHTML表現を使用します。[ 7 ]
IPythonはTkinter、PyGTK、PyQt / PySide、wxPythonとの非ブロッキングなインタラクションを可能にします(標準のPythonシェルはTkinterとのインタラクションのみを許可します)。IPythonは非同期ステータスコールバックやMPIを使用して並列コンピューティングクラスターを対話的に管理できます。IPythonはシステムシェルの代替としても使用できます。[ 8 ]デフォルトの動作はUnixシェルとほぼ同じですが、カスタマイズが可能で、ライブPython環境でコードを実行できる柔軟性があります。
IPython 5.x (Long Time Support) シリーズは、Python 2をサポートする最後のIPythonバージョンです。IPythonプロジェクトは、Python 3 Statementに最初に参加したプロジェクトの1つとして、2020年以降はPython 2をサポートしないことを誓約しました[ 9 ]。そのため、6.xシリーズはPython 3以降とのみ互換性があります。ただし、IPythonカーネルとJupyter Notebookサーバーを異なるバージョンのPythonで実行することは可能であり、ユーザーは新しいバージョンのJupyterでPython 2にアクセスできます。

2014年、IPythonの作者フェルナンド・ペレスはIPythonからスピンオフしたプロジェクト「Project Jupyter」を発表しました。[ 10 ] IPythonはJupyterのPythonシェルとカーネルとして存在し続けましたが、ノートブックインターフェースと他の言語に依存しないIPythonの部分はJupyterの名前の下に移行されました。[ 11 ] [ 12 ] Jupyterは言語に依存せず、その名前はJupyterがサポートするコアプログラミング言語であるJulia、Python、Rに由来しています。[ 13 ]
Jupyter Notebook(旧称IPython Notebook)は、Jupyterノートブックを作成、実行、可視化するためのWebベースのインタラクティブな計算環境です。Maple、Mathematica、SageMathといった他のプログラムのノートブックインターフェースに似ており、 1980年代にMathematicaで開発された計算インターフェーススタイルです。[ 14 ]数十言語の実行環境(カーネル)をサポートしています。Jupyter NotebookにはデフォルトでIPythonカーネルが付属していますが、2018年5月時点で100種類以上のJupyterカーネルが存在します。
IPythonは、一般的なコンピューティングプレスやその他の一般的なメディアで言及されており、[ 15 ] [ 14 ]、科学会議でも存在感を示しています。[ 16 ]科学および工学の研究においては、 matplotlibの補助ツールとしてよく紹介されています。[ 17 ]
2013年1月1日から、アルフレッド・P・スローン財団は2年間IPythonの開発を支援することを発表しました。[ 18 ]
2013 年 3 月 23 日、Fernando Perez はIPython により フリーソフトウェア財団フリーソフトウェア推進賞を受賞しました。
2013年8月、マイクロソフトはIPythonの継続的な開発を支援するために10万ドルを寄付しました。[ 19 ]
2014年1月、コーディングツール部門でドクター・ドブスからJolt生産性賞[ 20 ]を受賞しました。2015年7月には、ゴードン・アンド・ベティ・ムーア財団、アルフレッド・P・スローン財団、レオナ・M・アンド・ハリー・B・ヘルムズリー慈善信託から600万ドルの資金提供を受けました[ 21 ] 。
2018年5月には、2017 ACMソフトウェアシステム賞を受賞した。[ 22 ]この賞を受賞したチームとしては最大規模である。[ 23 ]