2015-12-03 105 views
1

我是python的新手。我运行一个脚本,我在网络上得到了:python版本与json.dumps冲突

python file.py 

我得到这个:

File "file.py", line 293 
    print json.dumps(evaluate(), indent=4) 
      ^
SyntaxError: invalid syntax 

我读它关系到Python版本,这应该是一些2.7。所以我下载了pyenv。我在包含file.pypyenv local 2.7.10的目录中设置正确的版本。但我仍然得到同样的错误。

(有关信息,我试图安装blockchain工具:复仇)

+0

您正在使用哪种操作系统? python脚本的第一行是否有类似'#!/ usr/bin/python'的文件(“shebang”)?我不使用'pyenv',所以不能多说。如何编写一个使用相同“shebang”(如果存在)的实验性脚本,然后只是执行“import sys; print(sys.version)'以便更容易地进行试验。 – tdelaney

+0

@tdelaney是的,它是一个带'#!/ usr/bin/python'的python脚本,事实上我找到了这个:'3.5.0 | Anaconda 2.4.0'。我不知道如何摆脱这个 - 你有什么想法吗? – Newben

+0

奇怪的环境问题很难弄清楚! '/ usr/bin/python'通常是python 2,这就是你想要的旧式print语句('print something'而不是'print(something)')。 Python 3通常显示为'/ usr/bin/python3'。 “哪个python”说什么?我对'anacoda'也不熟悉,它可能在路上有别的东西。 – tdelaney

回答

4

的Python 3.x的改变print语句是打印功能

的Python 2.x的:

print "Hello World" 

的Python 3.x

print("Hello World") 

因此,因为你在python上运行3.x您需要更新您的代码以使用3.x打印样式(例如,打印函数调用)。

print(json.dumps(evaluate(), indent=4)) 
+0

除了'print'之外,还有2和3之间的其他区别。转换可能是一个重大举措。 – tdelaney