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', '.'),
? ? ? ? ? ? ? ],
添加回答
舉報