为什么我的pyinstaller创建的可执行文件需要管理员权限?
我写了一个Python程序,我使用pyinstaller分发。 我一直在使用onefile
选项来创建一个独立的可执行文件。 到目前为止,这一直很棒,但随着应用程序的增长,启动时间变得更长。 我还希望用户正确安装应用程序以使升级更简单。
我一直在尝试使用pyinstaller的onedir
选项创建应用程序的单个目录版本。 但是,生成的.exe文件需要管理员权限才能运行,而onefile
版本则不需要。 程序本身不需要任何这样的特权,所以我认为这是pyinstaller正在做的事情。 如何创建不需要管理员权限的应用程序?
附加信息:
我最近遇到了这个问题,我解决问题的经验是这样的:
带有--onefile
选项的--onefile
在'可执行文件'中创建一个清单文件。 Windows上的这个清单文件告诉操作系统关于它捆绑的应用程序的一些事情。 它指定的一件事是应用程序名称/清单文件。 清单文件名的格式是appname.exe.manifest
。 如果您的程序使用PyInstaller冻结,则它存储在清单中的可执行文件名称将成为PyInstaller /dist
文件夹下已完成EXE的名称。 如果您重命名EXE,则与它一起打包的清单文件不再匹配! 因此,创建一个名称与最终EXE文件名相同的清单文件,并使用--manifest
选项运行PyInstaller,或者不要重命名PyInstaller创建的EXE。
当您使用自定义--manifest
打包PyInstaller项目时,重命名的程序不再请求管理员提升。
在少数情况下可能会询问管理员权限:
A.如果可执行文件名称包含相关关键字(如setup
, install
, update
或patch
)
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?