よくある質問#

なぜ `__file__` は定義されていないのですか? 何を使用できますか?#

スクリプトを実行するときに Python によって定義されるグローバル変数 `__file__` は、Jupyter Notebook では定義されていません。 Sphinx-Gallery は Notebook スタイルの例をサポートし、Jupyter Notebook にもエクスポートするため、サンプルスクリプトを実行するときにこの変数をスコープ外にすることに同意しました。

`__file__` の代わりに、os.getcwd() を使用して、ファイルが置かれているディレクトリを取得します。 Sphinx-Gallery は、サンプルスクリプトをソースディレクトリで実行します。

なぜ Matplotlib 関数のテキスト出力が得られるのですか?#

Sphinx-Gallery の出力キャプチャ動作は、Sphinx-Gallery v0.5.0 で変更されました。 v0.5.0 より前は、標準出力に向けられたデータ (例: Matplotlib の図のみ) のみがキャプチャされていました。 v0.5.0 では、設定 `'capture_repr'` (キャプチャされる出力の制御) が追加されました。 この設定により、各コードブロックの最後のステートメントが式の場合、その「表現」をキャプチャできます。 この新しい設定のデフォルト設定である `'capture_repr': ('_repr_html_', '__repr__')` は、最初に `'_repr_html_'` のキャプチャを試み、これが存在しない場合は `'__repr__'` をキャプチャします。 つまり、最後のステートメントが通常値を返す Matplotlib 関数であった場合、その値の表現もキャプチャされます。

Matplotlib 関数呼び出しで図だけでなくテキストも出力されないようにするには、最後のプロット関数を一時変数 (例: `_ = matplotlib.pyplot.plot()`) に割り当てるか、コードブロックの最後に `matplotlib.pyplot.show()` を追加します (キャプチャされる出力の制御 を参照)。 あるいは、`capture_repr` を空のタプル (`'capture_repr': ()`) に設定することもできます。これは、v0.5.0 より前の Sphinx-Gallery の動作を模倣します。 これにより、v0.5.0 より前には発生しなかったその他の不要な出力が発生するのを防ぐこともできます。

なぜサムネイルの外観が変わったのですか?#

サムネイルの DOM 構造は、レスポンシブで css グリッドに整列させるためにリファクタリングされました。 これらの変更により、既存のカスタム css が obsolete になる可能性があります。 css の更新方法については、サムネイルのカスタム css 移行ガイド を参照してください。

関連項目

Github PR #906