Я только что начал баловаться с Python, и я застрял с моим первым проектом
Мне нужна помощь в попытках разобраться в gpg. Я пытался заставить gpg работать с python 3.8.1. Если запустить код в Thonny Python 3.6.9, просто запустите.
Версия gpg (GnuPG) 2.2.4 libgcrypt 1.8.1 Домашний каталог: /home/bob/.gnupg gnupg: / usr / local / lib / python3 .8 / site-packages / gnupg
с использованием Python 3.6.9 прекрасно работает
#!/usr/bin/python3
from pathlib import Path
import gnupg
# My gpg keys home directory.
#gpg = gnupg.GPG(homedir='/home/bob/.gnupg')
gpg = gnupg.GPG(gnupghome='/home/bob/.gnupg')
local_path = Path("/home/bob")
src_dir = ("/home/bob/Tbox/Channels2.csv")
with open(src_dir, 'rb') as afile:
# text = afile.read()
status = gpg.encrypt_file(afile,
['bobh@gunas.co.uk'],
output='/home/bob/Tbox/Channels2.csv.gpg')
print('ok: ', status.ok)
print('status: ', status.status)
print('stderr: ', status.stderr)
SHELL OUTPUT
ok: True
status: encryption ok
stderr: [GNUPG:] KEY_CONSIDERED 4678A2C439E752DA3DAE2EBA7357BB95381CD73 0
[GNUPG:] KEY_CONSIDERED 4678A2C439E752DA3DAE2EBA7357BB95381CD73 0
[GNUPG:] ENCRYPTION_COMPLIANCE_MODE 23
[GNUPG:] BEGIN_ENCRYPTION 2 9
[GNUPG:] END_ENCRYPTION
, однако, если я запускаю код в Thonny Python 3.8.1 Я не работаю с сообщением об ошибке в Shell
#!/usr/bin/python3
from pathlib import Path
import gnupg
# My gpg keys home directory.
gpg = gnupg.GPG(homedir='/home/bob/.gnupg')
#gpg = gnupg.GPG(gnupghome='/home/bob/.gnupg')
local_path = Path("/home/bob")
backup_dir = Path("/home/bob/Tbox/tbackup-test")
src_dir = ("/home/bob/Tbox/Channels2.csv")
with open(src_dir, 'rb') as afile:
text = afile.read()
# status = gpg.encrypt_file(text,
status = gpg.encrypt(afile,
['bobh@gunas.co.uk'],
output='/home/bob/Tbox/Channels2.csv.gpg')
print('ok: ', status.ok)
print('status: ', status.status)
print('stderr: ', status.stderr)
SHELL OUTPUT
ok: False
status: None
stderr: gpg: Sorry, no terminal at all requested - can't get input
Я попытался добавить строку no-tty в файл gpg.conf, но это не помогло.
Я пытался с некоторым примером net, но с радостью, я обнаружил одну проблему, связанную с gpg и словом Context, например c = gpg.core.Context (armor = True) error AttributeError: 'GPG 'У объекта нет атрибута' core '.