2017-01-23 9 views
1

Ниже приведен код, который я пытался.Домашняя страница GnuPG

import os 
import gnupg 
import pdb 
pdb.set_trace() 
gpg = gnupg.GPG(gnupghome='new') 
input_data = gpg.gen_key_input(
    key_type="RSA",key_length=1024, 
    passphrase='mounika') 
key = gpg.gen_key(input_data) 
with open(local.txt,'rb')as f: 
    status=gpg.encrypt_file(f) 

И генерируется сообщение об ошибке.

C:\Python27\python.exe C:/SAAS/encrypt.py 
Traceback (most recent call last): 
    File "C:/SAAS/encrypt.py", line 4, in <module> 
    gpg = gnupg.GPG(gnupghome='new') 
    File "C:\Python27\lib\site-packages\gnupg.py", line 755, in __init__ 
    raise OSError(msg) 
OSError: Unable to run gpg - it may not be available. 

Process finished with exit code 1 

Я довольно новый для GnuPG и после того, как делать немного исследований я попытался заменить GNUPGHOME с домашним каталогом. Но это поднимает еще одну ошибку, что homedir - неожиданное ключевое слово. Помогите мне с этой проблемой. Любая помощь будет оценена по достоинству.

ответ

0

Вам необходимо установить программу gpg и убедиться, что она находится в вашем PATH. Или укажите полный путь к gpg двоичном в конструкторе, как

gpg = gnupg.GPG(gnupghome='new', gpgbinary='C:\\path\\to\\GnuPG\\pub\\gpg.exe') 

Проверьте также Deployment Requirements для python-gnupg пакета для получения дополнительной информации.

+0

Можете ли вы рассказать мне, что ПУТЬ вы говорите и как я могу это сделать. Я выполнил требования к развертыванию и загрузил и установил исполняемый файл gpg. – mounika

+0

Thankyou .. Он определенно работает в некоторой степени. Я использовал следующую строку ..code .. [gnupghome = 'C: \ SAAS \ wew', gpgbinary = 'C: \ SAAS \ gnupg-w32cli-1.4.1.exe'], и теперь создается папка wew , Но тогда ничего не появляется в консоли. Я пробовал отладку с помощью pdb, но когда я набираю n в pdb, ничего там не происходит. – mounika

0

в последней версии (2.2.0) python-gnupg (импортирован как gnupg),
gnupghome = homedir (где хранится брелок и т. Д.).

Несколько других вещей:
Бинарники (в окнах, это файл exe) определяются как «двоичные».
Лучше всего указать отпечаток пальца, возможно, ваш local.txt должен быть строкой ('local.txt'),
, и я думаю, вы используете saltycrane blog post, который немного устарел на данный момент.
Так что ниже должно работать (OP код переработан):

import os 
import gnupg 
import pdb 
pdb.set_trace() 
gpg = gnupg.GPG(homedir='new', 
      binary="C:/Progra~2/GNU/GnuPG/pub/gpg2.exe") 
input_data = gpg.gen_key_input(
    key_type="RSA",key_length=1024, 
    passphrase='mounika') 
key = gpg.gen_key(input_data) 
with open(local.txt,'rb')as f: 
    status=gpg.encrypt(f, key.fingerprint) 
print status.ok 
print status.status 
print status.stderr 

Я считаю, что ваш код просто не суметь молча.