大家好。
我有一个小的python项目,想把它做成单个可执行文件。我正在使用...
- Windows 7
- Python 3.4
- PyInstaller 3.2.1
我的PyInstaller命令是
PyInstaller -y -w -F -n output_file_name --uac-admin --clean source_file.py
这个命令工作正常。2但是单个输出文件在执行时不要求管理员权限。3并且在可执行文件图标上没有屏蔽标记。
当去掉-F选项(相当于--onefile)时,输出的可执行文件图标上有屏蔽标记,并要求我管理员权限,但这不是我想要的,我想要一个单独的可执行文件。
我在dist\output_file_name文件夹中发现了一个清单文件(output_file_name.exe.manifest)。所以我...
PyInstaller -y -w -F -n output_file_name --manifest output_file_name.exe.manifest --uac-admin --clean source_file.py
但是这个命令不起作用。它的单个可执行文件仍然不要求管理员权限。
我已经删除了PyInstaller并安装了最新的开发版本。
pip install git+https://github.com/pyinstaller/pyinstaller.git@develop
但结果是一样的,它的输出没有图标上的屏蔽标记,也没有要求管理员权限。
你知道吗?
请帮帮我!
4条答案
按热度按时间b09cbbtk1#
我找到问题所在了!
关键是...
1.安装PyInstaller 3.0
1.清单文件必须位于单个可执行文件所在的dist文件夹中
1.清单文件的名称必须与输出文件相同。
1.如果manifest文件位于dist文件夹中,则无需指定--manifest选项。--uac-admin就足够了。
1.您可以在build文件夹中找到清单文件。
谢谢大家。
vlurs2pr2#
添加passion053's答案,在我的情况下,我使用
-F
而不是--onefile
,它对我来说很好,但是你需要在同一个目录中添加manifest
文件作为你的单个可执行文件。注:我用的是
pyinstaller
版本3.5
,我的版本很好用编码快乐!
oknrviil3#
将
-r prog.exe.manifest,1
添加到pyinstaller
命令行对我来说很有效,之后就不需要将清单文件放在exe附近,纯单个exe文件。eqzww0vc4#
如果你想更直接地控制程序何时请求管理员权限,或者如果你不想依赖PyInstaller,你可以使用the PyUAC module(适用于Windows)。使用以下命令安装:
该软件包的直接用途是:
或者,如果你想使用装饰器:
然后,您可以在不使用UAC选项的情况下使用PyInstaller命令。
(from this answer)