首页 > 解决方案 > 如何在 VSCode 中整体执行 python 函数(它拆分并将第一行发送到解释器)

问题描述

由于 LiveShare 功能,我在日常数据科学远程工作流程中习惯了 VSCode。

因此,在执行函数时,它只执行第一行代码;如果我标记整个区域,那么它确实有效,但处理问题的方式很麻烦。

我尝试了许多扩展,但似乎都没有解决问题。

def gini_normalized(test, pred):
    """Simple normalized Gini based on Scikit-Learn's roc_auc_score"""
    gini = lambda a, p: 2 * roc_auc_score(a, p) - 1
    return gini(test, pred)

执行函数的开头会导致错误:

def gini_normalized(test, pred):...
  File "", line 1
    def gini_normalized(test, pred):
                                    ^
SyntaxError: unexpected EOF while parsing

PyCharm 有一个解决方案:Python Smart Execute - https://plugins.jetbrains.com/plugin/11945-python-smart-execute。Atom 的 Hydrogen 也没有这样的问题。

关于 VSCode 的任何想法?

谢谢!

标签: pythonvisual-studio-codepycharmexecution

解决方案


我是 VSCode DataScience 功能的开发人员。只是为了确保我理解正确。如果您在函数的定义上运行它,您希望 shift-enter 命令将整个函数发送到交互窗口吗?

如果是这样,那么是的,我们目前不支持。Shift-enter 可以逐行运行或运行您手动突出显示的一段代码。如果需要,可以在代码中使用 #%% 行将函数放入代码单元中。然后,当您在单元格中时, shift-enter 将运行整个单元格,这可能是您当前最好的方法。

这个智能执行看起来确实很有趣,如果你想把它作为建议提交,你可以在这里使用我们的 GitHub 将它放在我们的积压工作中查看。 https://github.com/Microsoft/vscode-python


推荐阅读