PXD ファイル形式とは?
.pxdは、もともとPyrexプログラミング言語に関連付けられていた開発者向けファイル形式であり、現在はその後継として活発にメンテナンスされているCythonの標準的な宣言形式です。.pxdファイルには、Cythonモジュール間で共有できるモジュール宣言(型定義、関数シグネチャ、外部Cライブラリのインターフェース)が保存されます。Cヘッダーと同様に、.pxdはビルドに追加され、他のモジュールが宣言された型や関数にアクセスできるようにします。Cythonは実装コードを.pyxファイルに保存します。
Pyrexは、開発者がCに近い構文を使用してPython拡張モジュールを作成することを可能にしました。2007年にPyrexからフォークされたCythonは、CとPythonの両方の構文をサポートしており、今日でも活発にメンテナンスされているプロジェクトです。PyrexとCythonの構文はどちらもCよりもPythonに酷似しており、Python開発者にとって導入しやすくなっています。CとPythonで書かれたモジュールを混在させるアプリケーションは、コードの複雑さと追加のコンパイル手順が必要になる代わりに、パフォーマンスの面でより効率的です。.pxd宣言ファイルは、標準のPythonモジュールがimportを使用するのとは異なり、cimportキーワードを使用して別のCythonソースに取り込まれます。
セキュリティと安全性
リスク: LOW.pxdはプレーンテキストのソースコードであり、それ自体では実行不可能で、エディタで開く際のリスクは低いです。通常のソースコードに対する注意が適用されます。信頼できない.pyx/.pxdファイルを含むプロジェクトをビルドすると、そのコードに対してCythonコンパイラとCコンパイラが実行され、任意のビルドロジックが実行される可能性があります。信頼できるコードのみをコンパイルしてください。.pxdを読むだけであれば無害です。
形式の詳細
概要- Pixadexアイコンライブラリ(Mac) - 開発終了したMacアプリPixadexは、アイコンコレクションを
.pxdファイルに保存していましたが、Cythonとは無関係です。 - Pyxis / PixelView / ProxyDesignerデータ - いくつかのニッチなツール(Pyxis分子ビューア、ProxyDesignerなど)が、独自のバイナリプロジェクト/データファイルに
.pxdを使用していました。
PXD ファイルを開くプログラム
cimportする.pyxモジュールをコンパイルする際に.pxdを読み取ります(pip install cython)。 cimportする.pyxモジュールをコンパイルする際に.pxdを読み取ります(pip install cython)。 cimportする.pyxモジュールをコンパイルする際に.pxdを読み取ります(pip install cython)。 技術的詳細
詳細仕様| ファイルタイプ | プレーンテキストCython宣言ソースファイル |
| MIMEタイプ | text/x-cython(text/plainとしても受け入れられます) |
| 文字エンコーディング | UTF-8またはASCII。バイナリヘッダーのない、人間が読めるソーステキスト |
| ファイルシグネチャ | なし - 拡張子および`cdef`、`ctypedef`、`cimport`などのCython固有のキーワードによって認識されます |
| ペアとなる形式 | 通常、同名の`.pyx`実装ファイルとペアになります(例:`mymodule.pyx`と並ぶ`mymodule.pxd`) |
| インポートメカニズム | 標準のPython `import`文ではなく、`cimport`キーワードを介して他のCythonモジュールによって消費されます |
| 内容の制限 | 宣言のみ:`cdef`の型と関数、`ctypedef`、`struct`/`union`/`enum`、`extern C/C++`ブロック。関数の実装や実行文は許可されません |
| コンパイル時の役割 | ビルド時のみ。個別のバイナリにはコンパイルされず、Cythonコンパイラによって消費側の`.pyx`ファイルに宣言がインライン化されます |
| C言語での類似物 | CythonモジュールにおけるCの`.h`ヘッダーファイルと機能的に同等です |
| ツールチェーン | Cythonコンパイラによって処理されます。setuptools、pip、scikit-build、CMakeビルドシステムと統合されます |
| プラットフォームのサポート | クロスプラットフォーム:Windows、macOS、Linux - CコンパイラとCPythonまたはPyPyがある任意のOS |
| 典型的なファイルサイズ | 宣言されたシンボルの数に応じて、数百バイトから数十KB |
| 言語バージョン | コンパイルツールチェーンのCython言語バージョンに従います(現在はCython 3.x) |
| リリース日 | Pyrex (early 2000s); adopted and extended by Cython (forked 2007) |
| 最新バージョン | Tracks the current Cython release (Cython 3.x) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | cython.readthedocs.io |
PXD の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。PXD ファイルについて最初の質問をしてみましょう。
よくある質問
.pxdファイルとは何ですか?
.h)のCython版です。他のCythonモジュールがcimportでインポートするCレベルの型や関数を宣言します。プレーンテキストのソースコードです。.pxdファイルを開くにはどうすればよいですか?
.pxdと.pyxの違いは何ですか?
.pyxは実装(実際のコード)であり、.pxdはcimportを介して他のモジュールと共有される宣言/インターフェース(.hヘッダーのようなもの)です。多くの場合、同じベース名を持ち、連携して動作します。.pxdに関数本体やPythonクラスを含めることはできますか?
.pxdは宣言のみを保持します。関数の実装、Python(def)クラス定義、実行文は含まれません。これらは.pyxに記述します。.pxdはPyrexとCythonのどちらのファイルですか?
.pxdはCythonファイルとして扱われます。なぜ科学計算用のPythonパッケージは.pxdファイルを同梱しているのですか?
cimportできるようにするためです。NumPyやscikit-learnなどのパッケージは、高性能な拡張機能のためにCインターフェースを公開する.pxdファイルを提供しています。