拡張する必要はありません Python (自明ではありませんが)、ctypes などの外部関数インターフェイスを使用できます .
<ブロック引用>
これらの C 関数または実行可能ファイルを Python で呼び出したい。それは可能ですか?
はい、モジュールとして Python にインポートできる C コードを作成できます。 Python はこれらの拡張モジュールを呼び出します .ドキュメントの例のように、Python から直接呼び出すことができます:
Python コード
import example
result = example.do_something()
C コード
static PyObject * example(PyObject *self)
{
// do something
return Py_BuildValue("i", result);
}
<ブロック引用> C コードをライブラリにしたい場合、つまり、#include と *.o のリンケージを Python で使用することを意味します。その方法または可能性はありますか。
共有ライブラリ *.dll としてビルドします または *.so distutils を使用して調査し、モジュールを配布することもできます。
<ブロック引用>C コードを実行可能ファイルに書き込む場合、つまりコマンドになる場合、Python で直接呼び出すことはできますか?
*.exe を記述する場合 次に、反対のことを行っています (C から Python を呼び出します)。選択する方法 (exe と共有ライブラリ) は、「Python を使用した C プログラム」 が必要かどうかによって異なります。 または 「C を使用した Python プログラム」 .
<ブロック引用>また、pythonコードはコンパイルできると聞きましたが、ソースファイルなしでコードを実行できるということですか?出力ファイルはバイナリファイルですか?パフォーマンスは向上しますか?
Python は *.py を読み取ります ファイルに変換し、*.pyc にコンパイルします バイトコード 実行時のファイル。その後、バイトコードは Python 仮想マシンで実行されます。これは、「ソースからバイトコードへの再コンパイルを回避できるため、同じファイルを 2 回目に実行する方が高速である」ことを意味します。 (Python 用語集から) *.py を編集していない場合 ファイル、*.pyc を実行します . *.pyc を配布できます *.py のないファイル ファイルですが、暗号化されておらず、リバース エンジニアリングされる可能性があります。