banner
andrewji8

Being towards death

Heed not to the tree-rustling and leaf-lashing rain, Why not stroll along, whistle and sing under its rein. Lighter and better suited than horses are straw sandals and a bamboo staff, Who's afraid? A palm-leaf plaited cape provides enough to misty weather in life sustain. A thorny spring breeze sobers up the spirit, I feel a slight chill, The setting sun over the mountain offers greetings still. Looking back over the bleak passage survived, The return in time Shall not be affected by windswept rain or shine.
telegram
twitter
github

Nuitka の魔力:Python プログラムを効率的な C 言語アプリケーションに変換する

Nuitka は Python コンパイラであり、.py ファイルを本物のバイナリプログラム(実行可能ファイルまたは動的ライブラリ)に変換できます。従来の Python プログラムはインタプリタで実行されます(例: python3 script.py)。しかし、Nuitka を使用することで、Python スクリプトを独立した .exe(Windows)または ELF ファイル(Linux)にコンパイルでき、実行速度が向上し、ソースコードがより安全になります(簡単に逆コンパイルされにくい)。

プロジェクトのアドレス:Nuitka GitHub

特徴#

Nuitka には以下の特徴があります:

  • 性能向上:Python を C に変換し、さらに機械語にコンパイルすることで、実行速度がインタプリタ実行よりも速くなります(特に計算集約型コードに対して)。
  • クロスプラットフォーム:Windows、Linux、macOS をサポート。
  • 互換性が高い:ほぼすべての Python 構文、ライブラリ(サードパーティライブラリを含む)をサポート。
  • コード保護:バイナリにコンパイルされた後は、より安全で、.py スクリプトのようにソースコードを簡単に見ることができません。
  • 単一ファイルの実行可能プログラムに直接パッケージ化可能:ユーザーは Python 環境をインストールして設定する必要がありません。

一言でまとめると:より速く、より安全で、「ワンクリックで実行可能ファイルを生成」できます。

インストール#

インストールは非常に簡単で、1 行のコマンドで済みます:

pip3 install nuitka

国内で pip の速度が遅い場合は、清華源を追加できます:

pip install nuitka -i https://pypi.tuna.tsinghua.edu.cn/simple

注意:Nuitka はシステムの C コンパイラに依存しているため、事前に環境を設定しておく必要があります:

  • Windows: [Visual Studio Build Tools] または MinGW をインストール。
  • Linux / macOS:一般的に gcc または clang が付属しているため、そのまま使用できます。

#

まずは簡単な例を書いてみましょう:

def say_hello(name):
    print(f"こんにちは, {name}!Nuitka をご利用いただきありがとうございます!")

if __name__ == "__main__":
    say_hello("Pythoner")

次に Nuitka でコンパイルします:

nuitka --standalone --onefile hello.py

ここで、standalone は独立して実行可能なディレクトリにパッケージ化することを示し、外部の Python 環境に依存しません;onefile は単独の実行可能ファイルを生成することを示します。コンパイルが完了すると、hello.exe(Windows)または hello(Linux、macOS)が得られます。これで直接使用できます。

次に、実際の例としてフィボナッチ数列を書いてみましょう:

def fib(n):
    if n <= 2:
        return 1
    return fib(n-1) + fib(n-2)

if __name__ == "__main__":
    print(fib(35))

Python インタプリタで直接実行すると、数秒待たされるかもしれませんが、Nuitka でコンパイルしてから実行すると、速度が明らかに向上します。計算集約型コードは Nuitka を利用してコンパイルして実行するのに非常に適しています。

まとめ#

Nuitka は Python を「真の C プログラム」に変える魔法のツールです。コードの加速、保護、パッケージ配布に適しています。Python プログラムを他の人に渡す必要があり、彼らが Python 環境を持っていないことやソースコードの漏洩を心配している場合、Nuitka は非常に試す価値があります。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。