2017-01-23 6 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にあることを確認する必要があります。以上の情報のためpython-gnupgパッケージにもDeployment Requirements

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

チェックのように、あなたのコンストラクタでgpgバイナリへの完全なパスを提供します。

+0

あなたが話しているPATHと、どうすればいいのか教えてください。私は配備要件を満たし、gpg実行ファイルをダウンロードしてインストールしました。 – mounika

+0

ありがとうございます。確かにある程度は働いています。私は次の行を使用しました..コード.. [gnupghome = 'C:\ SAAS \ wew'、gpgbinary = 'C:\ SAAS \ gnupg-w32cli-1.4.1.exe']これは今、 。しかし、何もコンソールに表示されません.pdbを使ってデバッグしようとしましたが、pdbにnと入力すると何も起こりません。 – mounika

0

python-gnupg(gnupgとしてインポート)、
gnupghome = homedir(キーリングなどが格納されています)の最新バージョン(2.2.0)です。

その他のもの:
バイナリ(ウィンドウ内は、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 

私はあなたのコードは黙って失敗して数えます。

関連する問題