【问题标题】:How to indent jupyter cells/blocks in vs code如何在 vs 代码中缩进 jupyter 单元格/块
【发布时间】:2025-12-15 01:20:08
【问题描述】:

我想使用 vscode 和 jupyter 进行交互式 python 编程。除了单元格/块没有缩进或代码没有缩进时,一切都可以找到。以前,我尽可能使用 spyder。

我喜欢这种行为,因为当您有较长的类或函数定义(缩进)但只想从类/函数交互地运行几行时,它对于调试和开发很有用。

我已经尝试过官方的 python 扩展和 Don Jayamanne juypter 扩展。没有一个允许期望的行为。


更新:我刚刚发现不同的 python 版本在这方面表现不同。使用 python 3.6.6 和 3.7.2 缩进会引发错误,而使用 python 3.6.7 或 3.6.8 会忽略缩进并执行单元格。是否有解释为什么不同版本的行为不同或明确设置来处理这个问题?

#%%
print('This works')

#%% 
    print('This does not work, as it raises an indent error')
    print('Update: This works in python version 3.6.7 or 3.6.8')

    #%%
    print('This does not work, as it is not recognized as a cell/block')

【问题讨论】:

    标签: python visual-studio-code ipython jupyter


    【解决方案1】:

    Python 使用空格缩进,而不是花括号或关键字来分隔块。看起来 VSC Jupyter 扩展的创建者并没有竭尽全力解决这个问题。

    一个技巧是在单元格的开头添加一个 true if 语句,如下所示:

    #%%
    if 1:  # indent for emphasis
        print('This works')
    

    【讨论】:

    • 感谢您的建议。这可行,但并不能真正解决我的问题。我经常有一个函数,我可以从该函数中以交互模式运行部件以进行开发或调试。但不改变代码,即程序仍然可以作为一个整体运行。
    最近更新 更多