Python gnupg加密文件加密失败\u符合\u模式

Python gnupg加密文件加密失败\u符合\u模式,python,gnupg,Python,Gnupg,我使用的是Python 3.7.6、gnupg 2.3.1,我试图加密一个文件,但失败了,下面是我的代码: gpg = gnupg.GPG() key_data=open("/path-to-public-key", "rb").read() import_result=gpg.import_keys(key_data) pprint(import_result.results) with open("/my_data_00000.dat", "rb") as f: gpg.encrypt

我使用的是Python 3.7.6、gnupg 2.3.1,我试图加密一个文件,但失败了,下面是我的代码:

gpg = gnupg.GPG()
key_data=open("/path-to-public-key", "rb").read()
import_result=gpg.import_keys(key_data)
pprint(import_result.results)

with open("/my_data_00000.dat", "rb") as f:
  gpg.encrypt(f, <finger print from import_result.results>, output="/my_data_00000.dat.gpg")
结果表明:

[{'fingerprint': 'finger-print-1',
  'status': 'Not actually changed\n'},
 {'status': 'key considered'}]
pubkeys: 
[{'algo': '1',
  'date': '1523494796',
  'dummy': '',
  'expires': '',
  'fingerprint': 'finger-print-2',
  'keyid': '38MOQQBD63C93BE4',
  'length': '2048',
  'ownertrust': '-',
  'rev': {},
  'sigs': {'filetrans <test@test.com>': []},
  'subkeys': [['xxx', 'e'], ['xxxxx', 'es']],
  'trust': '-',
  'type': 'pub',
  'uids': ['filetrans <test@test.com>']}]
如果我运行此代码:

gpg = gnupg.GPG()
key_data=open("/path-to-public-key", "rb").read()
import_result=gpg.import_keys(key_data)
pprint(import_result.results)
pubkeys = gpg.list_keys()
print("pubkeys: ")
pprint(pubkeys)
结果表明:

[{'fingerprint': 'finger-print-1',
  'status': 'Not actually changed\n'},
 {'status': 'key considered'}]
pubkeys: 
[{'algo': '1',
  'date': '1523494796',
  'dummy': '',
  'expires': '',
  'fingerprint': 'finger-print-2',
  'keyid': '38MOQQBD63C93BE4',
  'length': '2048',
  'ownertrust': '-',
  'rev': {},
  'sigs': {'filetrans <test@test.com>': []},
  'subkeys': [['xxx', 'e'], ['xxxxx', 'es']],
  'trust': '-',
  'type': 'pub',
  'uids': ['filetrans <test@test.com>']}]
publickeys:
[{'algo':'1',
“日期”:“1523494796”,
“虚拟”:“,
“过期”:“,
“指纹”:“指纹-2”,
'keyid':'38MOQQBD63C93BE4',
“长度”:“2048”,
“所有者信任”:“-”,
“rev:{},
'sigs':{'filetrans':[]},
'子键':[['xxx','e'],['xxxxx','es'],
'信任':'-',
“类型”:“发布”,
'uids':['filetrans']}]
我注意到finger-print-1和finger-print-2是不同的,我应该使用哪一个来加密文件

如果我使用相同的公钥直接从命令行运行,它将成功加密:

gpg --output /my_data_00000.dat.gpg --encrypt --recipient <test@test.com> /my_data_00000.dat
gpg--output/my_data_00000.dat.gpg--encrypt--recipient/my_data_00000.dat

请帮助。

您是否考虑过改用
python gnupg
?我遇到了同样的问题。我删除了
gnupg
并安装了
python-gnupg
。这似乎对我起到了作用。

您是否考虑过改用
python gnupg
?我遇到了同样的问题。我删除了
gnupg
并安装了
python-gnupg
。这似乎对我起了作用