2014-01-23 2 views
2

Я хочу сделать первые шаги в Python 3, поэтому я установил Eclipse 4.3.1 и установил последнюю версию плагина PyDev. Я создал две конфигурации для Python 2.7 и Python 3.2 (обе версии установлены на моей машине). Я могу запускать и отлаживать свою тестовую программу с помощью Python 2.7, но я могу запускать свою программу только с помощью Python 3.2. Если я хочу отлаживать свою программу, я получаю сообщение об ошибке «Неожиданная ошибка настройки отладчика Socket закрыта». В консоли я получаюPyDev не работает с Python 3.2

File "/home/he/PyDev/plugins/org.python.pydev_3.2.0.201312292215/pysrc/pydevd.py", line 914 
    if text.startswith(u'REPLACE:'): 
           ^
SyntaxError: invalid syntax 

Программа тест:

#!/usr/bin/env python3 
print("Hello, World!") 

Как я могу это исправить? Я использую Ubuntu 12.04.

ответ

0

Python 3.0 ~ 3.2 не поддерживает явный литерал unicode (u'....').

Литерал Unicode поддерживается в Python 2.x, Python 3.3+. (См PEP 414 -- Explicit Unicode Literal for Python 3.3)


Для того, чтобы запустить его в Python 3.2, замените следующую строку:

if text.startswith(u'REPLACE:'): 

с:

if text.startswith('REPLACE:'): 

Заменив код, как описано выше, в Python 2.7 , буква 'REPLACE:' обозначает байтовую строку. Если вы хотите, чтобы 'REPLACE:' работали как строка юникода, как в Python 3.x, вы можете использовать __future__.

Добавить следующую строку в верхней части исходного кода:

from __future__ import unicode_literals 
+0

Круто, теперь он работает !!! Спасибо! – user3226575

+0

@ user3226575, Добро пожаловать в переполнение стека! Если это вам помогло, вы можете рассказать об этом сообществу, [принимая ответ] (http://meta.stackexchange.com/a/5235). – falsetru

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