对于python`if`语句,Atom Hydrogen错误“解析期间意外的EOF”! (但不是其他陈述)

问题描述 投票:1回答:2

似乎是Atom / Hydrogen如何解释代码的问题。 for循环它将通过单击行号中的胡萝卜给我“折叠”或“折叠”的选项。然而,if块/声明没有这样的运气。

编辑器名称和版本:Atom 1.35.1

平台:Mac OS Sierra 10.12.6

配色方案:一个黑暗/日晒黑暗

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')

我已经完全卸载了atom并删除了所有已知的剩余文件(请参阅enter link description here,然后重新安装并且问题仍然存在。

python-3.x if-statement atom-editor eof hydrogen
2个回答
0
投票

在调用run命令之前,尝试选择要运行的所有代码。

另一种选择是use cellshydrogen: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,我认为解决方法很容易。


0
投票

if语句的折叠似乎是language-python插件中的一个错误,例如,请参阅https://github.com/atom/language-python/pull/300(他们正在研究它)。

他们鼓励我在氢气中打开一个bug问题。 Viola:https://github.com/nteract/hydrogen/issues/1589

我相信一旦推出版本,解决方案就是升级。此时这似乎不是配置/设置问题。

© www.soinside.com 2019 - 2024. All rights reserved.