これらの 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が実行されます。*.pyファイルなしで*.pycファイルを配布できますが、これらは暗号化されておらず、リバース エンジニアリングされる可能性があります。