問題を解決する方法は2つあります
- 、フリーズのように、静的ビルダーを使用するか
pyinstaller
、またはpy2exe
- を使用してコンパイル
cython
最初の方法はクロスプラットフォームとバージョンではなく、他の回答で説明されているため、2番目の方法を使用してそれを行う方法を説明します。また、pyinstallerのようなプログラムを使用すると、通常、ファイルサイズが大きくなりますが、cythonを使用すると、ファイルのサイズがKBになります。
まず、をインストールしcython
ます。次に、Pythonファイル(たとえばtest.py
)の名前をファイルに変更し.pyx
ます
sudo pip install cython
mv test.py test.pyx
次に、cython
GCCと一緒に使用してコンパイルできます(cython
PythonからCファイルを生成します).pyx
ファイル GCCがCファイルをコンパイルします)
(https://stackoverflow.com/a/22040484/5714445を参照)
cython test.pyx --embed
gcc -Os -I /usr/include/python3.5m -o test test.c -lpython3.5m -lpthread -lm -lutil -ldl
注:Pythonのバージョンによっては、最後のコマンドを変更する必要がある場合があります。使用しているPythonのバージョンを知るには、単に
$ python -V
これで、探しているものであるバイナリファイル「test」が作成されます。
注意すべきその他の事項:
- Cythonは、静的メモリ割り当てにCタイプ変数定義を使用して、Pythonプログラムを高速化するために使用されます。ただし、あなたの場合は、従来のPython定義を引き続き使用します。
- 追加のライブラリ(
opencv
たとえばなど)を使用している場合は、を使用してディレクトリを提供してから、GCCフラグで-L
を使用-l
してライブラリの名前を指定する必要があります。これについての詳細は、GCCフラグを参照してください。