Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
Python の .py、Cython の .pyx、またはプロジェクト ZIP を C/C++ ソースに変換します。
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
Cython は Python コードと型宣言を含む Cython コードを翻訳するツールです。入力は単一の .py、.pyx、またはプロジェクトソースを含む ZIP で、出力言語として C/C++ を選びます。単一ファイルは個別モジュールの確認に、プロジェクト ZIP は複数ソースのパッケージパスを保った処理に向いています。
翻訳は拡張モジュールを作る最初の段階です。Cython が C/C++ を生成した後、対象 Python に合う開発ヘッダー、プロジェクト依存関係、システムライブラリー、C/C++ コンパイラーを使って .so や .pyd にリンクする必要があります。本ツールの出力はソースと処理レポートであり、ローカルコンパイルを代行したり全プラットフォームのビルドを保証したりしません。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
単一モジュールには .py または .pyx を選びます。プロジェクト ZIP にはパッケージ構成と .pxd 宣言やヘッダーなどのソース依存関係を残し、仮想環境、キャッシュ、ビルドフォルダー、無関係な大容量ファイルは含めないでください。
一般的な Python 拡張にはまず C を選びます。ソースで C++ 機能を使用する場合や C++ コンパイラーが必要な場合は C++ を選択します。この設定は生成ソースの種類を変えるだけで、ライブラリーやコンパイルフラグは設定しません。
ページに表示されるアカウント別のアップロード上限を確認します。処理後に ZIP を取得し、各 .c/.cpp とレポートを確認して、未処理ファイル、構文エラー、依存関係の注意を把握します。
対象 OS に合う Python ヘッダー、Cython 依存関係、ツールチェーンを用意します。プロジェクト設定に従ってコンパイルとリンクを行い、対象の Python とプラットフォームで拡張を import して必要な確認を実行してください。
活用例
仕事や日常の流れの中での活用方法を紹介します。
開発者は C/C++ ソースを生成して既存の wheel ビルドに加えられます。コンパイル設定、依存関係、リリース対象はプロジェクト側で管理します。
保守担当者は複数モジュールを処理し、再現可能なビルドの前に不足する宣言、パッケージパス、ローカル依存ソースをレポートから確認できます。
小さなモジュールで Python/Cython ソースから C/C++ への翻訳を示し、その後コンパイラーが作るプラットフォーム拡張との違いを説明できます。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
C ソースはまだ Python 拡張ではありません。対象 Python と一致するヘッダー、コンパイラー、依存ライブラリー、リンク設定を用意し、.so や .pyd などの拡張を生成する必要があります。
.py は Python 構文を使い、純 Python モードで型宣言を追加できます。.pyx は cdef などの Cython 拡張構文にも対応します。通常の Python ファイルに拡張構文を書くと解析エラーになります。
モジュールが C++ 構文を使う場合や C++ ライブラリーと連携する場合に選びます。言語を変えても C++ 依存関係、ヘッダーパス、リンク引数、対象 ABI は自動設定されません。
されません。ZIP は解析と翻訳に使うプロジェクトファイルを提供しますが、任意の依存関係をインストールしたり配布用 wheel を作ったりはしません。必要な宣言を含め、実際のビルド依存関係はローカルに用意してください。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
生成された C/C++ は大きくなることがあり、ソースの一部を含む場合もあります。機密保護用の形式ではありません。ビルド結果は Cython/Python のバージョン、コンパイラー、システムヘッダー、指示、サードパーティーライブラリー、対象 OS に左右されます。ある環境向けの拡張バイナリーを別環境へそのまま移せるとは限りません。
アップロード前に ZIP の内容と権限を確認し、必要なソースだけを含めてください。認証情報や本番データを入れないでください。レポートは処理状況を示すもので、コンパイル成功や動作の正しさを証明しません。対象環境でリンク、import、機能確認を完了してください。
関連
関連ツール、特集、利用可能なAPIを探せます。