2012-04-02 67 views
7

私はpyinstallerを使って配布するPythonプログラムを書いています。私はこれまでにonefileオプションを使用して、スタンドアロンの実行可能ファイルを作成してきました。これまでは素晴らしいことでしたが、アプリケーションが大きくなるにつれて起動時間が少し長くなっています。また、ユーザーにアプリケーションを正しくインストールして、アップグレードを簡単にしたいと思っています。pyinstallerで作成した実行ファイルに管理者権限が必要なのはなぜですか?

pyinstallerのonedirオプションを使用して、アプリケーションの1つのディレクトリバージョンを作成しようとしていました。ただし、作成された結果の.exeファイルには、実行するには管理者特権が必要です。バージョンはonefileではありません。プログラムそのものにはそのような特権は必要ないので、pyinstallerがやっていることだと思います。管理者権限を必要としないアプリケーションを作成するにはどうすればよいですか?

追加情報:

  • のPython 2.6、pyInstallerのv1.4では
  • アプリケーションがPyQt4とpygameのモジュールを使用しています。
  • Windows 7の実行可能ファイルを作成しようとしています。
  • -w pyinstallerオプションを使用してウィンドウレスの実行可能ファイルを作成します。
+0

Windowsとはちょうど同じように簡単にできます。それはある程度のインストーラの自動検出機能を備えており、実行可能ファイルとしてマークすることができます。理想的には、プログラムはマニフェストに必要なアクセスレベルを指定する必要があります。 Pyinstallerがあなたにそのようなことをさせるかどうかはわかりません。 –

答えて

3

私は最近、この問題に遭遇し、そしてそれは、このようにした解決に私の経験している:--onefileオプション付き

pyInstallerのは、「実行可能」でマニフェストファイルを作成します。 Windows上のこのマニフェストファイルは、OSに同梱されているアプリケーションに関するいくつかのことを伝えます。指定するものの1つが、アプリケーション名/マニフェストファイルです。マニフェストファイル名の形式はappname.exe.manifestです。プログラムがPyInstallerでフリーズされている場合、マニフェストに格納されている実行可能ファイル名は、PyInstallerの/distフォルダのEXEに与えられた名前になります。 EXEの名前を変更した場合、それに含まれているマニフェストファイルはもはや一致しません。したがって、最終EXEファイル名と同じ名前のマニフェストファイルを作成し、--manifestオプションを指定してPyInstallerを実行するか、PyInstallerが作成するEXEの名前を変更しないでください。

PyInstallerプロジェクトをカスタム--manifestでパッケージ化すると、名前が変更されたプログラムは管理者の昇格を要求しなくなります。

1

管理者権限は、いくつかのケースで求められることができます。

A.実行可能ファイル名は、関連するキーワード(のようなsetupinstallupdateまたはpatch

B.それはそれでマニフェストのアプリケーションの要求が含まれている場合。

C. .exeファイル名では、マニフェストファイルの名前はあまりありません。

、あなたのアプリケーションパッケージの.specファイルを作成する場合、あなたは

exe = EXE(
    ... 
    manifest=None, 
    ... 
    ) 

を追加することができますし、セットアップに名前を変更またはインストールしない限り、それは、パスワードの入力を要求しません。

関連する問題