2016-07-08 3 views
1

Я использовал Python 2.7 некоторое время. Внезапно я получаю ошибки с оператором печати, и похоже, что теперь я должен использовать синтаксис Python 3.x.Печать в python 2.7

print 'hello world' 
File "<ipython-input-462-d05d0c8adf1f>", line 1 
    print 'hello world' 
       ^
SyntaxError: invalid syntax 

print('hello world') 
hello world 

я дважды проверил, что я до сих пор работает версию 2.x Python:

import sys 
print (sys.version) 
2.7.12 |Anaconda 2.3.0 (64-bit)| (default, Jun 29 2016, 11:07:13) [MSC v.1500 64 bit (AMD64)] 

Единственное изменение, которое я сделал в последнее время в моей среде Python был обновить Matplotlib от 1,4 до 1,5, но, будучи честно говоря, я не могу сказать, началась ли проблема с точного момента обновления.

Любая помощь будет оценена (пожалуйста, дайте мне знать, какой другой информации о моей системе необходимы)

+3

У вас есть 'from __future__ import print_function'? – jonrsharpe

ответ

0

Вы используете print_function будущего импорта?

from __future__ import print_function 

Эта функция возвращает новый синтаксис печати в код Python 2. Он обычно используется, если кодовая должна быть работоспособной как на Python 2 и 3.

Пример:

>>> print 'hello' 
hello 
>>> from __future__ import print_function 
>>> print 'hello' 
    File "<stdin>", line 1 
    print 'hello' 
       ^
SyntaxError: invalid syntax 
>>> print('hello') 
hello 

См the __future__ docs для более подробной информации.

Если вы не используете этот импорт самостоятельно, вы можете проверить, возникает ли проблема только в ipython или также в обычном python, чтобы сузить источник проблемы.

+0

«Библиотека, которую вы используете» - это повлияет только на библиотеку, а не на вопросника, поскольку будущие утверждения являются модульными локальными. – user2357112

+1

@ user2357112 спасибо, я не знал об этом. –

+0

Не могли бы вы рассказать об этом? Я никогда не использовал его в своих сценариях, поэтому я подозреваю, что это, должно быть, содержалось в некоторых библиотеках, которые я использую. Будет ли это проблемой или нет? Просто перезапустите ядро, решив проблему, поэтому, скорее всего, я должен был использовать print_function будущий импорт – FLab