1 回答
TA贡献1836条经验 获得超4个赞
您可以通过使用密钥gpg
添加二进制文件及其所有依赖项,将 GnuPG 与 PyInstaller 构建的应用程序打包在一起。Analysis.datas
视窗
在 Windows 上,我通过反复试验得到了它。首先,我只是在整个系统中搜索gpg.exe
二进制文件。在电源外壳中:
> Get-Command gpg 0.0.0.0 C:\Program Files\Git\usr\bin\gpg.exe >
然后我.spec
通过更改此部分将其添加到我的 PyInstaller 文件中
a = Analysis(['..\\src\\main.py'],
pathex=['.\\'],
binaries=[],
datas=[],
hiddenimports=['pkg_resources.py2_warn', 'libusb1'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
进入这个
a = Analysis(['..\\src\\main.py'],
pathex=['.\\'],
binaries=[],
datas=
[
('C:\\Program Files\\Git\\usr\\bin\\gpg.exe', '.'), ],
hiddenimports=['pkg_resources.py2_warn', 'libusb1'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
经过上述更改后,我的应用程序会弹出警告错误,例如:
The code execution cannot proceed because msys-bz2-1.dll was not found. Reinstalling the program may fix this problem.
一个接一个,我一直在寻找(Get-Command如上所示在 powershell 中使用)并添加.dll它抱怨的文件,直到我datas在上面的规范文件中包含以下内容,这些内容有效:
datas=
[
( '..\\KEYS', '.' ),
('C:\\Program Files\\Git\\usr\\bin\\gpg.exe', '.'),
('C:\\msys64\\usr\\bin\\msys-bz2-1.dll', '.'),
('C:\\msys64\\usr\\bin\\msys-assuan-0.dll', '.'),
('C:\\msys64\\usr\\bin\\msys-gcrypt-20.dll', '.'),
('C:\\msys64\\usr\\bin\\msys-gpg-error-0.dll', '.'),
('C:\\msys64\\usr\\bin\\msys-2.0.dll', '.'),
('C:\\msys64\\usr\\bin\\msys-readline8.dll', '.'),
('C:\\msys64\\usr\\bin\\msys-z.dll', '.'),
('C:\\msys64\\usr\\bin\\msys-sqlite3-0.dll', '.'),
('C:\\msys64\\usr\\bin\\msys-iconv-2.dll', '.'),
('C:\\msys64\\usr\\bin\\msys-intl-8.dll', '.'),
('C:\\msys64\\usr\\bin\\msys-ncursesw6.dll', '.'),
],
添加回答
举报