好的,我一直在四处寻找这个问题。我正在GraphicScriptWizard.exe
使用 -i -F -w 和 -m 选项构建一个使用 PyInstaller 2.0 版调用的应用程序。
我定义的与 -m 选项一起使用的清单文件被调用GraphicScriptWizard.exe.manifest
并具有以下内容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="x86"
name="GraphicScriptWizard"
type="win32"/>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
使用此清单和命令行选项,我没有得到提示提升的可执行文件。
为了完整起见,Pyinstaller 生成的规范文件是:
# -*- mode: python -*-
a = Analysis(['GraphicScriptWizard.py'],
pathex=[<Full Development Path>],
hiddenimports=[],
hookspath=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name=os.path.join('dist', 'GraphicScriptWizard.exe'),
debug=False,
strip=None,
upx=True,
console=False , icon='SP.ico', manifest='GraphicScriptWizard.exe.manifest')
app = BUNDLE(exe,
name=os.path.join('dist', 'GraphicScriptWizard.exe.app'))
我尝试使用不带 -m 选项的 pyinstaller 进行编译,并使用以下命令嵌入 mt:
mt.exe -manifest GraphicScriptWizard.exe.manifest -outputresource:GraphicScriptWizard.exe;#1
当我这样做时,应用程序会提示我提升,但是当程序运行时出现错误:
"Cannot open self <Full path to exe>\GraphicScriptWizard.exe or archive..."
我真的束手无策,希望更熟悉 Windows 资源和清单的人可以为我提供更多的信息。我的清单 XML 错了吗?我使用 Pyinstaller 的方法错了吗?