私はPythonでソフトウェアを開発しており、雇用主の顧客に配布される予定です。私の雇用主は、時間制限のあるライセンスファイルでソフトウェアの使用を制限したいと考えています。
もし、.pyファイルや.pycファイルを配布すれば、ライセンスファイルをチェックするコードを簡単に(デコンパイルして)削除することができます。
もう1つの側面は、私の雇用主がコードを顧客に読ませたくないということです。コードが盗まれるのではないか、少なくとも「斬新なアイデア」が盗まれるのではないかと恐れているのです。
この問題に対処する良い方法はありますか?できれば、既製のソリューションがいいですね。
ソフトウェアはLinuxシステム上で動作しますので、py2exeではうまくいかないと思います。
Python はバイトコードでコンパイルされたインタプリタ型言語なので、ロックダウンするのが非常に困難です。 py2exe](http://py2exe.org)のような ex-packager を使用したとしても、実行ファイルのレイアウトはよく知られており、Python のバイトコードはよく理解されています。
通常、このようなケースでは、トレードオフをしなければなりません。 コードを保護することがどれほど重要か? コードの中に本当の秘密があるのか(銀行送金の対称暗号化のための鍵など)、それともただの偏執狂なのか? 最良の製品を最も早く開発できる言語を選択し、自分の斬新なアイデアがどれだけ価値があるかを現実的に考えてみましょう。
ライセンスチェックを安全に行う必要があると判断した場合は、それを小さなC言語の拡張機能として書き、ライセンスチェックのコードがリバースエンジニアリングされにくくなるようにして(不可能ではありません!)、コードの大部分をPythonのままにしておきます。
あなたの雇用主は、あなたのコードから他の人が得たアイデアを盗み返すことができることを知っていますか?つまり、彼らがあなたの仕事を読むことができるなら、あなたも彼らの仕事を読むことができるということです。もしかしたら、この状況からどのような利益を得られるかを考えた方が、失うものの大きさを恐れるよりも、投資のリターンが大きいかもしれません。
[EDIT] Nick'さんのコメントへの回答。
得るものもなく、失うものもない。お客様は自分の欲しいものを手に入れました(自分で変更したので代金も払いました)。彼はその変更を公開していないので、他の人には何も起こらなかったのと同じです。
さて、もし顧客がソフトウェアを販売するならば、著作権表示を変更しなければなりません(これは違法ですから、あなたは訴えることができますし、勝てるでしょう -> 単純なケースですが)。
もし著作権表示を変更しなければ、第2レベルの顧客は、そのソフトウェアがあなたのオリジナルであることに気づき、何が起こっているのか疑問に思うでしょう。彼らはあなたに連絡を取り、あなたは自分の作品の転売について知ることになるでしょう。
ここでも2つのケースがあります。オリジナルのお客様は数枚しか販売していません。つまり、どうせ儲からないのだから、気にしなくてもいいということです。あるいは、大量に販売した場合。つまり、彼らが何をしているかを知り、それについて何かをするチャンスがあるということです。
しかし、結局のところ、ほとんどの企業は法律を遵守しようとします(いったん評判が落ちれば、ビジネスを行うのはずっと難しくなります)。ですから、彼らはあなたの作品を盗むのではなく、あなたと一緒に作品を改善していきます。ですから、もしあなたがソースを(単純な再販からあなたを守るようなライセンスで)提供すれば、次のバージョンにその変更が確実に反映され、彼らがメンテナンスをする必要がなくなるので、彼らが行った変更を単純にプッシュバックしてくれる可能性があります。これはWin-Winの関係です。あなたは変更を得ることができますし、あなたが公式リリースに含めることを望まなくても、彼らが本当にどうしても必要な場合は、彼ら自身が変更を行うことができます。