如何在Visual Studio Code中的当前文件目录中运行python interactive?

ozg*_*gur 15 python visual-studio-code vscode-settings

"Run Selection/Line in Python Terminal"在VSCode中执行命令时,终端的当前工作目录是工作空间根目录.在运行选择/行时,如何将终端的当前目录设置为当前文件的目录?

Lau*_*ent 14

在“用户设置”中,使用搜索栏查找“python.terminal.executeInFileDir”并将其值设置 (=) 为“true”而不是“false”。

  • 这并没有回答原来的问题,但这是我一直在寻找的答案,所以投赞成票+1 (2认同)

小智 13

我使用了选项“运行”->“添加配置”(或“打开配置”,如果可用),这将打开您当前的“launch.json”文件。现在您可以将此行添加到所需的配置中(在我的例子中是 Python):

"cwd": "${fileDirname}"
Run Code Online (Sandbox Code Playgroud)

此行将使 VSCode 在执行文件的同一文件夹中运行您的内容。

您可以在此链接中获取更多详细信息: https://code.visualstudio.com/docs/editor/variables-reference

这是我的完整 json 文件(仅供参考):

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [                
                    
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}"            
            
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)


oni*_*osi 9

发布 2019.10.44104 后更新

继VS代码Python扩展释放2019.10.44104,你现在可以设置python.dataScience.notebookFileRoot${fileDirname}在文件中,你正在运行的目录直接启动Python交互式窗口。

请注意,除非您中断/重新启动内核(或关闭 VS Code),否则如果您随后从另一个文件运行代码,则根目录不会更改。关于这方面,看下面的评论和对应的github issue


对于 Python 交互式窗口,您要查找的设置是python.dataScience.notebookFileRoot. 但是,正如在对类似问题的回答中所解释的那样,

设置notebookFileRoot不支持始终在文件位置打开(无需为每个文件夹设置绝对路径)notebookFileRoot。VSCode 变量,例如${fileDirname}特定于任务和调试配置文件(launch.jsontask.json)。

另请参阅相关的github 问题

如上所述,您仍然可以将此设置设置为特定的绝对路径,如果您一次主要处理一个项目,这可能就足够了。

或者,您也可以在脚本/笔记本的顶部添加以下代码:

import os
os.chdir('absolute-path-to-workingDir')
Run Code Online (Sandbox Code Playgroud)


小智 1

您需要转到file/preferences/user settings并单击窗口右上角的“{}”图标。之后,将此设置放入:"terminal.integrated.cwd": "C:\\Users\\myUser\\",然后无论您的终端目录在哪里。这个答案并不是最不准确的,因为我自己在使用 vscode 方面还是个菜鸟,所以如果有对此更有经验的人可以回复这个帖子,那就太好了。