新安装的python包pmock中的语法错误无效

时间:2015-12-13 11:16:08

标签: python pmock

我正在我的机器上安装gump3(Ubuntu 12.04 64bit)。 pmock是依赖之一。

我使用以下命令成功安装了pmock

sudo pip install pmock --allow-external pmock --allow-unverified pmock

但是,当我尝试导入pmock时,出现以下错误:

Python 2.7.3 (default, Jun 22 2015, 19:33:41) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pmock
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pmock.py", line 313
    def with(self, *arg_constraints, **kwarg_constraints):
           ^
SyntaxError: invalid syntax
>>> 

这是pmock.py中的代码:

def with(self, *arg_constraints, **kwarg_constraints):
       """Fully specify the method's arguments."""
       self._mocker.add_matcher(AllArgumentsMatcher(arg_constraints,
                                                  kwarg_constraints))
       return self

知道我为什么会收到此错误?

1 个答案:

答案 0 :(得分:2)

正如pmock page you linked in your question所述:

  自2004年中期以来,pMock一直没有积极发展。

  

pMock目前是针对Python&gt; = 2.3

的版本编写的

使用Python 2.5,the with statement (PEP 343)以及它,引入了with关键字。在Python 2.5中,只有在使用

明确启用此新功能时,它们才会充当关键字
from __future__ import with_statement

但使用withas作为标识符(例如,作为函数名称,如pmock.py所做的那样)会引发警告,即使该功能未启用也是如此

自Python 2.6起,该功能始终处于启用状态,使用withas作为标识符时出错。 (参见PEP 343的过渡计划部分。)

您正在使用与pmock不兼容的Python 2.7.3。