web-dev-qa-db-ja.com

Pythonデスクトップアプリケーションをデプロイするにはどうすればよいですか?

デスクトップ上で実行される個人用pythonアプリケーションから始めました。GUIツールキットとしてwxPythonを使用しています。このタイプのアプリケーションの需要がある場合は、商品化したいと思います。 。

私は「実際の」アプリケーションをデプロイする知識がありませんPythonアプリケーションを使用しましたが、 py2exe 過去にはさまざまな成功を収めました。コードを難読化するにはどうすればよいですか?どういうわけかバイトコードのみをデプロイできますか?

理想的なソリューションは、私の知的財産(ソースコード)を危険にさらすことはなく、Python(Python $ ===)を直接インストールする必要はありませんが、インタープリターが埋め込まれている必要があります)。クロスプラットフォーム(Windows、Mac、およびLinux)。この分野のツールやリソースを知っている人はいますか?

ありがとう。

30
mmattax

ソースの代わりにコンパイルされたPythonバイトコード(.pycファイル)を配布できます。Python(または他の言語、実際には)で逆コンパイルを防ぐことはできません) pyobfuscate のような難読化ツールを使用して、競合他社が逆コンパイルされたソースを解読するのをより煩わしくすることができます。

Alex Martelliが言うように このスレッドで 、コードを秘密にしておきたい場合は、他の人のマシンで実行しないでください。

IIRC、最後に使用したとき cx_Freeze Windows用にDLLを作成し、ネイティブPythonインストールの必要性を排除しました。少なくともチェックする価値があります。

13
cdleary

うわー、そこにはたくさんの質問があります:

  • Pythonインタープリターから直接バイトコード(.pyc)ファイルを実行することは可能ですが、利用可能なバイトコード難読化ツールを見たことがありません。

  • 「オールインワン」の導入ソリューションについては知りませんが、次のようになります。

    • Windowsの場合、NSIS( http://nsis.sourceforge.net/Main_Page )を使用できます。ここでの問題は、OSX/* nixにはPythonが付属していますが、Windowsには付属していないことです。 py2exeでバイナリを構築したくない場合は、Pythonランタイム環境(技術的な環境は言うまでもなく)の配布を取り巻くライセンスの問題が何であるかわかりません。

    • 「バンドル」形式を使用してOSXディストリビューションをパッケージ化することができ、* NIXには、ソフトウェアをインストールするための独自の規則(通常は「makeinstall」スクリプト)があります。

お役に立てば幸いです。

2
pjbeardsley

たぶんIronPythonはあなたに何かを提供することができますか?私はそれらの.exe/.dllファイルがかなりロックダウンされる可能性があるに違いありません。このような機能がモノラルでどのように機能するかわからないため、Linux/OSXでどのように機能するかわかりません...

1
dsvensson

私はWindowsでpy2exeを使用して成功しています。コード分​​析で必要なすべてのモジュールを取得できるように、コードを少し変更する必要がありますが、それ以外は機能します。

Linuxに関しては、いくつかの重要な配布形式があります。

  • DEB(Debian、Ubuntuおよびその他の派生物)
  • RPM(RedHat、Fedora、openSuSE)

特にdistutils/setuptoolsをすでに使用している場合は、DEBの作成は特に難しくありません。いくつかのヒントは ポリシードキュメント にあり、パッケージ化の例Pythonアプリケーションは リポジトリ にあります。

RPMの経験はありませんが、十分な例が見つかると確信しています。

0
Torsten Marek

ScraZ難読化ツールを使用してみてください( http://scraZ.me )。これは、ソースコードではなく、バイトコードの難読化ツールです。無料版には優れた難読化方法がありますが、完全ではありません。 PROバージョンは、バイトコードに対して非常に強力な保護を備えています。 (バイトコードの難読化後、逆コンパイルは不可能です)

0
Vova Korova