Python3 Lettuce抛出SyntaxError

时间:2016-09-16 08:28:18

标签: python-3.x pip lettuce

我正在尝试使用生菜来编写一些简单的单元测试 (更具体地说,我正在学习本教程:https://semaphoreci.com/community/tutorials/bdd-testing-a-restful-web-application-in-python
我刚安装了生菜:

$ pip3 install lettuce

当我跑

$ lettuce test/features 

我明白了:

Traceback (most recent call last):
  File "/usr/local/bin/lettuce", line 9, in <module>
    load_entry_point('lettuce==0.2.23', 'console_scripts', 'lettuce')()
  File "/usr/local/lib/python3.4/site-packages/pkg_resources/__init__.py", line 542, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2569, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2229, in load
    return self.resolve()
  File "/usr/local/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2235, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/local/lib/python3.4/site-packages/lettuce/__init__.py", line 179
    print "Error loading step definitions:\n", e
                                        ^
SyntaxError: Missing parentheses in call to 'print'

生菜包装有错吗?我去纠正了一些事情(为一些打印语句添加了括号,然后由于同样的原因,其他一些打印失败)。 有什么想法吗?

2 个答案:

答案 0 :(得分:6)

不幸的是,lettuce与Python 3不兼容。

项目不会在 兼容的任何地方声明,但是他们的源代码使用的是Python 2特定语句,例如触发异常的print语句。然而,问题不仅仅是print。有issue open要求Python 3支持。

如果必须使用lettuce,那么您需要使用Python 2.7。否则,似乎有一个名为aloe的分支与nose和Python 3一起使用。

答案 1 :(得分:0)