Kompilieren Sie Python und verteilen Sie Binärdateien!
Vernünftige Idee:
Utilice Cython , Nuitka , Haut abstreifen oder etwas Ähnliches, um Python in C-Code zu kompilieren und Ihre Anwendung stattdessen als Python-Binärbibliotheken (pyd) zu verteilen.
Auf diese Weise bleibt kein Python-(Byte-)Code übrig, und Sie haben ein vernünftiges Maß an Verschleierung erreicht, das jeder (d. h. Ihr Arbeitgeber) von normalem Code erwarten kann. (.NET oder Java sind weniger sicher als in diesem Fall, da dieser Bytecode nicht verschleiert ist und relativ leicht in einen vernünftigen Quellcode dekompiliert werden kann).
Cython wird immer kompatibler mit CPython, also sollte es funktionieren. (Ich bin tatsächlich erwägt dies für unser Produkt. Wir bauen bereits einige Drittanbieter-Libs als pyd/dlls, so dass der Versand unserer eigenen Python-Code als Binärdateien ist kein allzu großer Schritt für uns).
Ver Dieser Blogbeitrag (nicht von mir) für eine Anleitung, wie man es macht. (thx @hithwen)
Verrückte Idee:
Du könntest Cython wahrscheinlich dazu bringen, die C-Dateien für jedes Modul separat zu speichern, sie dann einfach zu verketten und sie mit starkem Inlining zu erstellen. Auf diese Weise ist Ihr Python-Modul ziemlich monolithisch und schwer zu Chip auf mit gängigen Tools.
Mehr als verrückt:
Sie könnten in der Lage sein, eine einzige ausführbare Datei zu erstellen, wenn Sie mit der Python-Laufzeitumgebung und allen Bibliotheken (dlls) statisch verknüpfen (und optimieren) können. Auf diese Weise wäre es sicher schwierig, Aufrufe zu/von Python und den von Ihnen verwendeten Framework-Bibliotheken abzufangen. Dies ist jedoch nicht möglich, wenn Sie LGPL-Code verwenden.