2015-12-03 6 views
1

Я новичок в python. Я бегу сценарий, который я получил в Интернете:конфликт с python с json.dumps

python file.py 

я получаю это:

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

Я прочитал это связано с питона версии, которая должна быть какой-то 2.7. Поэтому я загрузил pyenv. И я установил правильную версию в каталоге, который содержит file.py: pyenv local 2.7.10. Но я все равно получаю ту же ошибку.

(Для информации, я пытаюсь установить blockchain инструмент: Эфириума)

+0

Какую операционную систему вы используете? Есть ли в первой строке скрипта python что-то вроде '#!/Usr/bin/python' (« shebang »)? Я не использую 'pyenv', поэтому не могу сказать об этом много. Как насчет написания экспериментального сценария, который использует ту же «shebang» (если присутствует), а затем просто «import sys; print (sys.version)», чтобы сделать что-то более легкое для экспериментов. – tdelaney

+0

@tdelaney Да, это скрипт python с '#!/Usr/bin/python', и действительно я нашел это:' 3.5.0 | Anaconda 2.4.0'. Я не знаю, как избавиться от этого - есть ли у вас какие-либо идеи? – Newben

+0

Странные проблемы с окружающей средой трудно понять! '/ usr/bin/python', как правило, это python 2, что и требуется для оператора печати старого стиля (' print something', а не 'print (something)'). Python 3 обычно отображается как '/ usr/bin/python3'. Что говорит 'какой python'? Я не знаком с «anacoda», и у него может быть что-то еще на пути. – tdelaney

ответ

4

Python 3.x изменил оператор печати являются функциями печати

Python 2.x:

print "Hello World" 

Python 3.x

print("Hello World") 

Так как вы работаете на python 3.x вам нужно будет обновить свой код, чтобы использовать стиль печати 3.x (например, вызовы функций печати).

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

Существуют и другие отличия между 2 и 3, кроме «print». Преобразование может быть основным подъемом. – tdelaney

Смежные вопросы