11

コマンドラインプログラムのGUIフロントエンドであるクロスプラットフォームのPythonスクリプトを作成したいと思います。問題は、ターミナルを使用すると、コンピューターを高層ビルの上から投げ出すのと同じ効果があると考えているMacユーザーを何人か知っていることです。LinuxとWindowsでは、Pythonスクリプトを設定するのは簡単なので、ユーザーはアイコンをダブルクリックすると、余分なウィンドウを開かなくてもスクリプトが開始されます。OS-Xでこれを行う簡単な方法はありますか?ユーザーはOS-Xに付属しているものとは異なるPythonをインストールする必要がありますか?私は決定的な答えを見つけることができませんでした。

4

3 に答える 3

13

Platypusを見たいと思うかもしれません。スクリプトをラップするアプリを生成するためのフリーウェア アプリです。

そのようなことを行う別の方法は、Automator または AppleScript Editor を使用することです。どちらも、スクリプトを実行するだけのアプリケーションを作成できます。

アップデート:

Automator の場合: Automator を起動し、アプリケーション テンプレートを選択し、検索フィールドに「スクリプト」と入力し、[シェル スクリプトの実行] をダブルクリックし、シェル ポップアップ メニューを に切り替え、/usr/bin/pythonPython スクリプトをテキスト フィールドに入力/貼り付けます。または、ポップ メニューをオンのままに/bin/bashして、テキスト フィールドに外部スクリプトの呼び出しを記述します。アプリケーションとして保存します。

ヘルプ メニューからヘルプを表示することもできます。

AppleScript の場合、AppleScript エディターを起動し、スクリプトとして次のように入力します。

do shell script "/usr/bin/true"

/usr/bin/true任意のスクリプトへのパスに置き換えます。アプリケーションとして保存します。

ここでも、[ヘルプ] メニューにヘルプがあります。

于 2013-02-10T02:02:22.650 に答える
5

py2appはこれを aplomb で行います。Python スクリプトを作成し、必要な依存関係 (wx、Tkinter など) を使用すると、py2app によって最新の OS X 環境で実行されるスタンドアロン アプリ バンドルが作成されます。Python もバンドルされているため、(システムのデフォルトだけでなく) 任意の Python を使用できます。

欠点は、生成されたアプリが大きくなり、多くの依存関係がある場合は最大 50 MB になる可能性があることです (ただし、これはやや極端です)。

于 2013-02-10T02:08:15.843 に答える
0

これを行うには、次の 2 つの方法があります。

  1. スクリプトをクリックします。
  2. command-i を押して、「情報を取得」ウィンドウを開きます。
  3. [開く] セクションを展開します (展開されていない場合)。
  4. ドロップダウン メニューから [Python ランチャー] を選択します。
  5. ダブルクリックしたときにすべての Python スクリプトを起動する場合は、[すべて変更] をクリックします。
  6. おそらくPython Launcherを開き、「ターミナルウィンドウで実行」のチェックを外してください。これはこのマシンでのみ機能するため、次のものより移植性が低くなります。なんで?ドキュメントタイプを開くためのデフォルトは、インストールされているものによって異なります (XCode および/または IDLE の両方が .py ファイルを開くことを引き継ぎます)。

方法 2:

  1. ファイルの最初の行であるInterpreter Directiveを検証します。を使用することをお勧めし/usr/bin/env python3ます。これにより、ユーザー パスにある最初の python3 インタープリターが実行されます。
  2. chmod a+x <script_name>ターミナルからスクリプトを実行可能にします。
  3. 拡張子を .py から .command に変更します (これはターミナルによって開かれます)。
  4. 配布には zip または tar を使用して、権限が損なわれないようにします。このメソッドはターミナル ウィンドウを開きますが、Python ウィンドウを閉じるとターミナル ウィンドウも閉じます。

スクリプトに標準ライブラリ以外の依存関係がある場合は、.commandそれらをインストールするための 2 つ目のファイルを提供する必要があります。これは物事をより複雑にするかもしれませんが、 を使用することで複雑さpip3 install --user <list of dependencies>を最小限に抑えることができます。

于 2021-12-07T21:33:18.533 に答える