Javascriptのように、Pythonコードを圧縮/人間以外が読めるようにすることができるかどうか疑問に思っています。Python ではインデントが重要であり、その核となる哲学は読みやすさであることは知っていますが、ひょっとして、圧縮された Python コードを可能にする方法はありますか? ちなみに、Python 2.7。
3 に答える
ここでは、いくつかの異なるアプローチを取ることができます。
実際、Python は の形でミニフィケーションの機会を提供しています;
。あまり知られていない (ありがたいことに) Python の構文要素は、 を;
使用すると 1 行に複数の式を記述できることです。
例えば:
if x > y:
x += y
print y
else:
y += x
print x
次のように圧縮できます。
if x>y:x+=y;print y;
else:y+=x;print x;
これにはたくさんの例があります。コメントを削除したり、三項演算子を使用して単純なコードをさらに難読化したりすることもできます。は大量の;
空白を取り除きますが、実行できる小さな最適化がたくさんあります。
これを行うライブラリの例については、 here、here、またはhereを参照してください。
これらのいずれも、コードを完全に難読化して復元できないということにはならないことに注意してください。十分にやる気のある人なら誰でも、たとえ文書化されていなくても、これからあなたのソース コードをリバース エンジニアリングすることができます。
.pyo
これは、配布または.pyc
ファイルするだけの場合でも当てはまります。通常、Python バイトコードは、それを生成するために使用されるソース コードよりもはるかに小さくはなく、ほとんどの場合、簡単にリバース エンジニアリングできます。.pyc
を配布することでソース コードが完全に保護されると誤解しないでください。
EDIT:これらをスタンドアロンのバイナリ実行可能ファイルとしてパッケージ化する場合は、cx_Freezeをご覧ください。リバース エンジニアリングが不可能ではないにしても、探しているものにより近いものになる可能性があります。
http://doughellmann.com/2009/01/pymotw-compileall.html 削除してから .py ファイルをソース