在文档方面有不同的来源,有些使用 homedir,有些使用 gnupghome。我不知道他们更改它的时间或原因。
一些简单的代码来为 OP 提供解决方案:
import gnupg
print gnupg.__version__
try:
gpg = gnupg.GPG(gnupghome=homedir)
except TypeError:
gpg = gnupg.GPG(homedir=homedir)
请比较以下两个回溯。在这两种情况下它的代码相同。在一种情况下,gnupg.GPG 需要'homedir',而在另一种情况下需要'gnupghome'。
我在 virtualenv 中工作,并且有两种不同的 gnupg 发行版。
在 virtualenv 中,python gnupg 是通过 pip 安装的:
虚拟环境:
Python 2.7.9 (default, Mar 1 2015, 12:57:24)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gnupg
>>> gnupg.__version__
'2.0.2'
>>> homedir=''
>>> gpg = gnupg.GPG(homedir=homedir)
>>> gpg = gnupg.GPG(gnupghome=homedir)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __init__() got an unexpected keyword argument 'gnupghome'
全局:
Python 2.7.9 (default, Mar 1 2015, 12:57:24)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gnupg
>>> gnupg.__version__
'0.3.6'
>>> homedir=''
>>> gpg = gnupg.GPG(gnupghome=homedir)
>>> gpg = gnupg.GPG(homedir=homedir)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __init__() got an unexpected keyword argument 'homedir'
不过,我担心 jessie 中的旧 gnupg 版本。有人可以详细说明一下吗?