为什么我的pyinstaller创建的可执行文件需要管理员权限?

我写了一个Python程序,我使用pyinstaller分发。 我一直在使用onefile选项来创建一个独立的可执行文件。 到目前为止,这一直很棒,但随着应用程序的增长,启动时间变得更长。 我还希望用户正确安装应用程序以使升级更简单。

我一直在尝试使用pyinstaller的onedir选项创建应用程序的单个目录版本。 但是,生成的.exe文件需要管理员权限才能运行,而onefile版本则不需要。 程序本身不需要任何这样的特权,所以我认为这是pyinstaller正在做的事情。 如何创建不需要管理员权限的应用程序?

附加信息:

  • Python 2.6,pyinstaller v1.4
  • 应用程序使用PyQt4和pygame模块。
  • 试图为Windows 7创建可执行文件。
  • 使用-w pyinstaller选项来创建一个无窗口的可执行文件。

  • 我最近遇到了这个问题,我解决问题的经验是这样的:

    带有--onefile选项的--onefile在'可执行文件'中创建一个清单文件。 Windows上的这个清单文件告诉操作系统关于它捆绑的应用程序的一些事情。 它指定的一件事是应用程序名称/清单文件。 清单文件名的格式是appname.exe.manifest 。 如果您的程序使用PyInstaller冻结,则它存储在清单中的可执行文件名称将成为PyInstaller /dist文件夹下已完成EXE的名称。 如果您重命名EXE,则与它一起打包的清单文件不再匹配! 因此,创建一个名称与最终EXE文件名相同的清单文件,并使用--manifest选项运行PyInstaller,或者不要重命名PyInstaller创建的EXE。

    当您使用自定义--manifest打包PyInstaller项目时,重命名的程序不再请求管理员提升。


    在少数情况下可能会询问管理员权限:

    A.如果可执行文件名称包含相关关键字(如setupinstallupdatepatch

    B.应用程序在它的清单中请求它。

    C.这个.exe文件名称在清单文件中名字不多。

    如果您为应用程序包创建.spec文件,则可以添加

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

    它不会要求输入密码,除非您将其重命名为设置或安装。

    链接地址: http://www.djcxy.com/p/58655.html

    上一篇: Why does my pyinstaller created executable require admin privileges?

    下一篇: Why some git commands are not allowed in the .git directory?