【发布时间】:2018-12-22 23:47:30
【问题描述】:
在VSCode中执行"Run Selection/Line in Python Terminal"命令时,终端当前工作目录为工作区根目录。如何在运行选择/行时将终端的当前目录设置为当前文件的目录?
【问题讨论】:
标签: python visual-studio-code vscode-settings
在VSCode中执行"Run Selection/Line in Python Terminal"命令时,终端当前工作目录为工作区根目录。如何在运行选择/行时将终端的当前目录设置为当前文件的目录?
【问题讨论】:
标签: python visual-studio-code vscode-settings
在“用户设置”中,使用搜索栏查找“python.terminal.executeInFileDir”并将其值设置 (=) 为“true”而不是“false”。
【讨论】:
notebook file root 设置相关
在 2019.10.44104 版本之后更新
在 VS Code python 扩展的 2019.10.44104 版本之后,您现在可以将python.dataScience.notebookFileRoot 设置为${fileDirname} 以直接在您正在运行的文件的目录中启动 python 交互窗口。
请注意,如果您随后从另一个文件运行代码,则根目录不会更改,除非您中断/重新启动内核(或关闭 VS Code)。关于这方面,请看下面的comment和对应的github issue。
对于 Python 交互窗口,您要查找的设置是 python.dataScience.notebookFileRoot。但是,正如this answer 中对类似问题的解释,
notebookFileRoot设置不支持始终在文件位置打开(无需将notebookFileRoot设置为每个文件夹的绝对路径)。${fileDirname}等 VSCode 变量特定于任务和调试配置文件(launch.json和task.json)。
另请参阅关联的github issue。
如上所述,您仍然可以将此设置设置为特定的绝对路径,如果您一次主要处理一个项目,这可能就足够了。
或者,您也可以在脚本/笔记本顶部添加以下代码:
import os
os.chdir('absolute-path-to-workingDir')
【讨论】:
我使用了选项运行 -> 添加配置(或打开配置,如果可用) 这将打开您当前的“launch.json”文件。 现在您可以将此行添加到所需的配置中(在我的例子中是 Python):
"cwd": "${fileDirname}"
这一行将使 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}"
}
]
}
【讨论】:
您需要转到file/preferences/user settings 并点击窗口右上角的“{}”图标。之后,将此设置放入:"terminal.integrated.cwd": "C:\\Users\\myUser\\",,然后您的终端目录恰好位于任何位置。这个答案并不是最不准确的,因为我自己在使用 vscode 时仍然是个菜鸟,所以如果有经验丰富的人可以回复这个帖子,那就太好了。
【讨论】:
目前还没有直接的方法来实现这一点。为了寻找更好的解决方案,我在 VScode Marketplace 中有一个使用 Terminal Here 扩展的解决方法。此扩展允许您在当前文件的目录中打开集成终端。此扩展程序与更多步骤相结合,您应该会获得所需的行为。
ctrl+shift+p 并执行Terminal Here: Create Terminal。这将在文件目录中创建一个新终端。python 以启动 Python 解释器。ctrl+shift+p 并执行Terminal: Run selected text in active terminal。这将在打开的 Python 解释器中运行该行代码。仅当您第一次在当前文件目录中的 Python 解释器中运行代码选择时,才需要前两个步骤。所有后续选择都可以通过第三步运行。为了让事情变得更快,您可以将自定义 keybindings 附加到第一步和最后一步。
【讨论】:
此选项将帮助您。 文件->首选项->设置。 添加或编辑以下设置。
terminal.integrated.shell.windows": ""
它将从下一个终端反射出来。
并将 .profile 添加到您的默认 shell 并为其添加默认路径。
更多信息请访问:https://code.visualstudio.com/docs/editor/integrated-terminal
【讨论】:
此问题已回答here。解决方法是在.vscode文件夹中配置launch.json文件
【讨论】: