以下是我一直在尝试的代码。
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的新手,在做了一些研究之后,我尝试用homedir替换gnupghome。但是这引发了另一个错误,即keyword.Can是一个意外的homedir。请帮助我解决这个问题。任何帮助都将不胜感激。
发布于 2017-01-23 14:25:41
您需要安装gpg程序并确保它位于您的PATH中。或者在构造函数中提供gpg二进制文件的完整路径,如
gpg = gnupg.GPG(gnupghome='new', gpgbinary='C:\\path\\to\\GnuPG\\pub\\gpg.exe')有关更多信息,还请查看python-gnupg包的Deployment Requirements。
发布于 2017-01-26 20:45:25
在最新版本(2.2.0)的python-gnupg(导入为gnupg)中,
Gnupghome=homedir(存储密钥环等的位置)。
其他几件事:
二进制文件(在windows中是exe文件)被定义为'binary‘。
最好指定指纹,也许你的local.txt应该是一个字符串(‘local.txt’),
而且我认为您使用的saltycrane blog post目前有点过时了。
因此,下面的代码应该可以工作(重构操作代码):
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我认为你的代码只是默默地失败了。
https://stackoverflow.com/questions/41800247
复制相似问题