1

ゲストが特定のモジュールを表示できないように Python コードベースを保護するにはどうすればよいですか?

私の質問は、上記のページに投稿された追加の質問です。

2 つの svn ディレクトリがある場合。たとえば、src/private および src/public と内部ユーザーには、パブリック ディレクトリとプライベート ディレクトリの両方があり、問題なく動作します。

パブリック ユーザーには、src/public のみがあります。ユーザーがチェックアウトしていなくても、init .pyに src/private をインポートすることは可能ですか? ユーザーは、ファイルにリンクして src/private の機能上の依存関係を解決できる必要がありますが、ファイルの内容を表示することはできません。

この問題に対する他の解決策はありますか?

4

2 に答える 2

2

それを放棄。好奇心をそそられないようにすることは本質的に不可能です。たとえば、disモジュールを見てください。

import dis
def foo(): print 'bar'
dis.dis(foo)

これは次のようになります:

  1 0 LOAD_CONST 1 (「バー」)
              3 PRINT_ITEM          
              4 PRINT_NEWLINE       
              5 LOAD_CONST 0 (なし)
              8 戻り値   

出来上がり - モジュールをインポートするだけで、隠したい文字列があります。このような逆アセンブルを読み取り可能な Python コードに変換するのに非常に優れた仕事をすることができる他のモジュールとサービスがあります。

正確に何を達成しようとしていますか?つまり、具体的に何を守ろうとしているのですか?

于 2012-01-13T22:23:23.003 に答える
2

いつでもコア機能を C または C++ モジュールに移動し、モジュールのコンパイル済みバージョンのみを配布できます。

http://docs.python.org/extending/extending.htmlを参照してください

于 2012-01-13T22:37:41.667 に答える