2015-12-03 104 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