Python 通过一个kwarg,未通过2.7

Python 通过一个kwarg,未通过2.7,python,python-2.7,keyword-argument,Python,Python 2.7,Keyword Argument,仍然在学习Python并且很难找到答案 因此,我有一个具有以下功能的库: def clone(source, target=None, bare=False, checkout=None, errstream=default_bytes_err_stream, outstream=None, origin=b"origin", **kwargs) 我这样称呼它: porcelain.clone(repo_url, path, bare, errstrea

仍然在学习Python并且很难找到答案

因此,我有一个具有以下功能的库:

def clone(source, target=None, bare=False, checkout=None,
          errstream=default_bytes_err_stream, outstream=None,
          origin=b"origin", **kwargs)
我这样称呼它:

porcelain.clone(repo_url, path, bare, errstream=errstream,
                outstream=outstream, opener=self._dulwich_auth)
在3.x上运行良好。我刚刚尝试使用2.7,但是我得到了

TypeError:clone()获得意外的关键字参数“opener”


为什么会这样?我没有看到任何人在3对2中提到kwargs的任何不同之处,所以我很困惑为什么我只在2.7中看到这一点。我应该做些什么不同呢?

这个库是dulwich,它是git在纯Python中的一个实现。我查看了,注意到在0.18.6中,
**kwargs
已添加到
克隆中。因此,如果出于任何原因,您在Python2.7上使用0.18.5,但将其与在Python3上为0.18.6编写的代码进行比较,您将看到该错误。

您是否100%确定库函数的签名在两个版本中是相同的?是的。实际上我现在正在直接使用源代码。为什么要从Python 3降级到Python 2?有足够多的差异,你不能期望真正的兼容性。嗯,这种语法在2.7中是完全合法的,所以不幸的是,这里的代码没有明显的快速修复。。。可能有必要提供一个,尽管从第三方库中创建一个可能很困难。