1 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以通過使用密鑰gpg
添加二進(jìn)制文件及其所有依賴項(xiàng),將 GnuPG 與 PyInstaller 構(gòu)建的應(yīng)用程序打包在一起。Analysis.datas
視窗
在 Windows 上,我通過反復(fù)試驗(yàn)得到了它。首先,我只是在整個(gè)系統(tǒng)中搜索gpg.exe
二進(jìn)制文件。在電源外殼中:
>?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)
進(jìn)入這個(gè)
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)
經(jīng)過上述更改后,我的應(yīng)用程序會(huì)彈出警告錯(cuò)誤,例如:
The code execution cannot proceed because msys-bz2-1.dll was not found. Reinstalling the program may fix this problem.
一個(gè)接一個(gè),我一直在尋找(Get-Command如上所示在 powershell 中使用)并添加.dll它抱怨的文件,直到我datas在上面的規(guī)范文件中包含以下內(nèi)容,這些內(nèi)容有效:
? ? ? ? ? ? ?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', '.'),
? ? ? ? ? ? ? ],
添加回答
舉報(bào)