Ошибка атома водорода "неожиданный EOF при разборе" для оператора python `if` !? (но не другие заявления) - PullRequest
1 голос
/ 09 апреля 2019

Кажется, проблема в том, как Atom / Hydrogen интерпретирует код.for, это даст мне возможность «свернуть» или «свернуть», щелкнув по морковке в номере строки.Тем не менее, if блокам / операторам не везет.

Имя и версия редактора: Atom 1.35.1

Платформа: Mac OS Sierra 10.12.6

Цветовая схема: One Dark / Solarized Dark

picture of errors on if:

## this works: 
for i in range(10): 
    print( i)

## this doesn't: 
if not False: 
    print("test worked")

## this example doesn't throw an error, but only executes the "if" and not the else parts: 
x= False
if x == True:
    print("test")
elif x == None:
    print ('test anyway')
else:
    print('test again')

Я полностью удалил атом и удалил все известные оставшиеся файлы (см. введите описание ссылкиздесь , затем переустанавливается и проблема остается.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Свертывание операторов if кажется ошибкой в ​​плагине languages-python, например, см. https://github.com/atom/language-python/pull/300 (они работают над этим).

Они призвали меня открыть проблему с ошибкой в ​​водороде. Альт: https://github.com/nteract/hydrogen/issues/1589

Я полагаю, что решение будет заключаться в обновлении после того, как версии свернуты. На данный момент это не является проблемой конфигурации / настроек.

0 голосов
/ 11 апреля 2019

Попробуйте выбрать весь код, который хотите запустить, перед вызовом команды запуска.

Другой вариант - использовать ячейки и команду hydrogen:run-cell:

# %% Works if you run cells individually with `ctrl+shift+enter`
for i in range(10):
    print( i)

# %% this will now too: 
if not False: 
    print("test worked")

# %%
x= False
if x == True:
    print("test")
elif x == None:
    print ('test anyway')
else:
    print('test again')

Если вы не выберете код, который хотите запустить, или используете ячейки, Hydrogen попытается выяснить это с помощью атомарной грамматики и свертывания кода. Обычно это получается правильно, но отступы и пробелы в Python иногда выбрасывают.

Не стесняйтесь открывать проблему, если считаете, что эта ошибка должна быть приоритетной, но она может зависеть от атомного apis вверх по течению, и я думаю, что обходной путь достаточно прост.

...