为什么Python2.7坚持使用Python3 print语句?

时间:2015-01-28 15:38:11

标签: python-2.7 python-3.x numpy nose nosetests

我试图看看鼻子和鼻子是怎么回事单元测试正在我正在学习的包中使用。这个软件包使用了nosetester,它提供了numpy(为什么这样做也让我困惑)。我的nosetester.py位于/usr/local/lib/python2.7/dist-packages/numpy/testing/。我正在运行Python 2.7.6。但是,当我添加表单的跟踪语句时:

print "Hi"

到NoseTester类的__init__方法,我得到一个语法错误:

  File "/usr/local/lib/python2.7/dist-packages/numpy/testing/nosetester.py", line 182
print "Hi"
         ^

SyntaxError:语法无效

当我使用

print ("Hi")
事情很好。我知道我的Python解释器使用的是2.7.6:

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

这让我想知道为什么坚持使用Python3并且还有其他地方可能会遇到这个问题吗?

1 个答案:

答案 0 :(得分:2)

看起来nosetester.py有一行像

from __future__ import print_function

这使得Python2样式的打印语句print "foo"不可用,并且要求您使用Python3样式的打印函数print("foo")