在VSCode中执行 "Run Selection/Line in Python Terminal"
命令时,终端的当前工作目录是工作区根目录。如何在运行选择/行时将终端的当前目录设置为当前文件所在的目录?
在VSCode中执行 "Run Selection/Line in Python Terminal"
命令时,终端的当前工作目录是工作区根目录。如何在运行选择/行时将终端的当前目录设置为当前文件所在的目录?
根据发布的版本2019.10.44104更新
在VS Code Python扩展的版本2019.10.44104之后,您现在可以将 python.dataScience.notebookFileRoot
设置为 ${fileDirname}
,以直接在运行文件的目录中启动Python交互窗口。
请注意,如果您随后从另一个文件运行代码,则根目录将不会更改,除非您中断/重新启动内核(或关闭VS Code)。关于此方面,请参见以下评论和相应的github问题。
对于Python交互窗口,您要查找的设置是 python.dataScience.notebookFileRoot
。但是,正如这个答案中解释的那样:
通过设置
notebookFileRoot
不支持始终在文件位置打开(无需每个文件夹都设置绝对路径的notebookFileRoot
)。VSCode变量(如${fileDirname}
)仅适用于任务和调试配置文件(launch.json
和task.json
)。
请参阅相关的github问题。
正如指示的那样,您仍然可以将此设置设置为特定的绝对路径,如果您主要一次只处理单个项目,则可能足够。
或者,您也可以在脚本/笔记本的顶部添加以下代码:
import os
os.chdir('absolute-path-to-workingDir')
我使用了“运行”->“添加配置”(或者如果可用,“打开配置”)选项。 这将打开您当前的“launch.json”文件。 现在您可以将此行添加到所需的配置项中(在我的情况下是Python):
"cwd": "${fileDirname}"
{
// 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}"
}
]
}
ctrl+shift+p
并执行Terminal Here: Create Terminal
。这将在文件的目录中创建一个新的终端。python
以启动Python解释器。ctrl+shift+p
并执行Terminal: Run selected text in active terminal
。这将在打开的Python解释器中运行该行代码。前两步仅在首次在当前文件目录下运行Python解释器中的代码选择时需要。所有后续选择都可以使用第三步运行。为了加快速度,您可以将自定义keybindings附加到第一步和最后一步。
文件/首选项/用户设置
,并在窗口右上角点击“{}”图标。之后,将此设置添加进去:"terminal.integrated.cwd": "C:\\Users\\myUser\\",
,然后无论你的终端目录位于何处,都会生效。这个答案不是最准确的,因为我自己也是一个使用vscode的新手,如果有更有经验的人能回复这个帖子那就太好了。这些选项将会帮助您。 文件->首选项->设置。 添加或编辑以下设置。
terminal.integrated.shell.windows": ""
从下一个终端开始,它将被反映出来。
并将.profile添加到您的默认shell中,并将默认路径添加到其中。
更多信息请参见:https://code.visualstudio.com/docs/editor/integrated-terminal
这个问题在这里得到了解答。解决方案是配置.vscode
文件夹中的launch.json
文件。