37

Windows と Mac で動作する GUI アプリケーションを作成したいと考えています。このために、私は Python を選択しました。

問題は Mac OS X にあります。

Mac 用の「.app」を生成するには、py2app と pyinstaller の 2 つのツールがあります。

  1. py2app はかなり良いですが、パッケージにソース コードを追加します。コードを最終ユーザーと共有したくありません。
  2. Pyinstaller は UNIX 実行可能ファイルを生成するので、Mac で実行するにはどうすればよいですか? この実行可能ファイルでバンドルを作成しましたが、結果の ".app" が機能しません。

質問は次のとおりです。

  1. ソースコードを実行可能ファイルに含めるようにpy2appを構成して、最終ユーザーが私のプログラムにアクセスできないようにする方法は?
  2. UNIX 実行可能ファイルを Mac の「.app」に変換する方法は?
  3. Python コードを GCC でコンパイルする方法はありますか?
  4. Windows では簡単です。Python コードから「exe」ファイルを作成したところ、動作しました。Mac 用の単一ファイル「アプリ」を作成することは可能ですか?

PS私は2台のコンピューター(Windows用とMac用)、Python 2.7、wxPython、py2exe、py2app、およびpyinstallerを使用しています。

また、私はこれらのサイトをチェックアウトしました:

4

11 に答える 11

9

実行可能ファイルにソースコードを含めるようにpy2appを構成して、最終ユーザーが私のプログラムにアクセスできないようにするにはどうすればよいですか?

Pythonインタープリターを非常に真剣にハックしない限り(そしてマングルバージョンを含めない限り)、適度に熟練した意欲的なユーザーからソースを隠すための本当に良い方法はありません。これはWindowsにも当てはまると強く信じています。基本的に、真のソースまたはバイトコードを含めるかどうかに関係なく、かなりクリーンなバージョンのソースを回復できます。さらに重要なことに、私の意見では、実際のソースコードを含めない限り(バイトコードではなく)、インタープリターのバージョンに依存する可能性があります。

UNIX実行可能ファイルをMac「.app」に変換する方法は?

UNIX実行可能ファイルとはどういう意味ですか?ダーウィン(OS X)バイナリ[実際にはUNIXではありません]?これは、すでに説明した種類のツールを使用して実行できますが、ライブラリの依存関係を回避するために慎重に実行する必要があります。

コマンドラインバイナリをウィンドウに配置するための単純なラッパーが必要な場合は、簡単に実行できます。無料のXCodeスイートには、提供するいくつかの例があります(提供する出力がある場合はそれによって異なります)。

GCCでPythonコードをコンパイルする方法はありますか?

GCCはPythonをコンパイルしません。これは別の言語です(ただし、gccファミリーには複数の言語のフロントエンドをサポートするツールがありますが、Pythonはサポートしていません)。PythonをCに変換しようとするツールがあり、それを真のバイナリにコンパイルできますが、これは特定の種類の構成を回避するプログラムでのみ機能し、プロセス(および制限)はライブラリも適用する必要があります。
これを可能にする1つのプロジェクトはCythonです。これは、一部のタイプのコード、主に数値コードでうまく機能しますが、特に複数の異なるコンピューターで実行されるものを作成する場合は、インストールして悪用するのは簡単ではありません。

Windowsでは簡単です。Pythonコードから「exe」ファイルを作成しましたが、動作します。Mac用の単一ファイル「アプリ」を作成することは可能ですか?

私はこれについて懐疑的であると言わざるを得ないでしょう-非常に懐疑的です-。OS Xの場合と同様に、exeにはほぼ確実にソースコードが簡単にアクセスできます。

かなり簡単なトリックの1つは、ソースコードを暗号化してからその場で復号化することですが、これは価値があるよりも厄介なことのように思えます。

于 2013-02-17T21:14:07.753 に答える
6

wxPython に完全にコミットしていない場合 (およびクロスプラットフォームの Python GUI フレームワークを探している人) は、Kivyをチェックすることをお勧めします。クロス プラットフォームであり、GPU で高速化されており、アプリのパッケージ化を行います。飛び込むのは簡単で、よく考えられたアーキテクチャを備えており、インターフェースに関して信じられないほどの柔軟性を提供します。これは、クロス プラットフォームの Python GUI アプリを作成するために私が見つけた最良の方法です。

于 2013-02-23T04:22:49.763 に答える
4

cxFreezeが選択されました。私はこれを使用して、Python プログラムを Mac OS X アプリにパックします。これは魅力のように機能します。

于 2013-05-21T16:15:19.927 に答える
1

2: 「変換」することはできませんが、「something」App.app/Contents/MacOS/somethingに設定して、実行可能ファイルを .app ファイルに移動することはできます。CFBundleExecutableこれは一般的に推奨されません。

于 2012-10-17T16:04:38.523 に答える
0

大規模な Python プロジェクトで試したことはありませんが、自分のスクリプトでは、Automatorを使用するのが最も簡単な方法でした。

Run Shell Scriptアクションを使用してアプリ プロジェクトをインタラクティブに作成し、スクリプトをエディターに貼り付けて、シェル プログラム (/usr/bin/python) を選択し、最後にプロジェクトを保存できます。そして、あなたは自分自身の Mac ネイティブ アプリを手に入れました。

Automator は AppleScript によって駆動することもできます。したがって、この py-2-app 変換プロセスをビルド スクリプトにパイプライン処理できます。

私はそれで GUI プログラムをテストしたことがないので、あなたがそれに満足するかどうかはわかりません。しかし、引用されたすべてのサードパーティの python モジュール/アプリケーションがどれだけ適切に維持されているか、およびそれらがどれくらい続くか疑問に思うかもしれないので、試してみます。Automator は OS X にバンドルされているため、Apple が本当に飽きない限り、Automator は存続する可能性があります。

于 2014-02-16T16:32:05.507 に答える
0

Windows ユーザーに py2exe を使用して、ライブラリのバージョンを処理する必要がないようにしたので、コンパイルされたプログラムを分解しました。Python バイトコード ファイルが含まれています。それらの中を見ることをライセンス違反にすることはできますが、実際には、コンピューターがそれらを実行できれば、私はそれらを読み取ることができます. Cプリプロセッサを介してgccでPythonプログラムをコンパイルすることは可能です(Googleで2c.pyを探してみてください)。それらのいずれかがGCCをサポートしているかどうかはわかりません。繰り返しますが、それらを使用してもセキュリティは得られませんが、速度が大幅に向上します。

于 2012-09-29T02:10:20.777 に答える
0

やる気のある人なら、おそらくあなたのアプリの Python バイトコードから使用可能なソース コードを再構築することができるでしょう。最終ユーザーを信頼していないのに、なぜ彼らと取引をしているのですか?

于 2011-08-31T19:14:55.683 に答える
-1

唯一の方法はpy2appです。他に方法はありません。ごめん。あなたが行った調査は非常にしっかりしているようで、何も見逃していません。

于 2012-09-18T09:55:50.023 に答える