VSCode 中的 Python:每次都将工作目录设置为 python 文件的路径

Faw*_*ran 6 python working-directory visual-studio-code

所以我想从 Spyder 迁移到 VSCode,我遇到了这个问题,我无法访问数据集,因为我的工作目录与数据集的路径不同。

launch.json不是为我自动生成的,因为我没有调试任何东西(我试过这个)。

如何在 VSCode 中将工作目录设置为始终是我要运行的 Python 文件的目录?(如果这是不好的做法,你能告诉我一个易于使用的配置吗?)我想为 VSCode 的 IPython 终端设置它。

小智 10

我认为您需要的设置在这里:

文件 > 首选项 > 设置 > Python > 数据科学 > 在文件目录中执行

  • @ShepBryan这也帮助我将其设置为调试:https://github.com/microsoft/vscode-python/issues/19471#issuecomment-1184905417 (5认同)
  • 有没有办法为调试也做到这一点? (4认同)
  • launch.json 中的 "cwd": "${fileDirname}" 对我不起作用。但这确实做到了。现在当前工作目录设置为文件位置。谢谢你! (3认同)
  • 这里的“设置”下没有“Python”。 (2认同)

waz*_*ari 8

更新后的解决方案自 2022 年 1 月 24 日起运行

可以在“设置”菜单中更改它。转到文件 > 首选项 > 设置并搜索“在文件路径中执行”。你会发现一个名为:

Python > Terminal: Execute In File Dir
  When executing a file in the terminal, whether to use execute in the file's directory, instead of the current open folder.
Run Code Online (Sandbox Code Playgroud)

  • 显然,您必须将目录作为代码中的工作区打开,而不仅仅是脚本文件 https://github.com/microsoft/vscode-python/issues/1062#issuecomment-372794910 谁这样做?完全是垃圾。 (2认同)

小智 7

这对我有用:

将此包含在您的/.vscode/launch.json

{
    "name": "Python: Current File",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "console": "integratedTerminal",
    "justMyCode": false,
    "cwd": "${fileDirname}",
    "purpose": ["debug-in-terminal"]
}
Run Code Online (Sandbox Code Playgroud)

来源


bra*_*o23 6

您可以launch.jsonVisual Studio Code 用户指南 中找到有关设置文件的更多详细信息,包括如何创建一个及其含义。

简而言之,您应该能够在您通常使用Open Worspace打开的目录launch.json.vscode子文件夹中创建一个文件,然后粘贴其他答案提供的代码段。如果您发现它不起作用,您可以尝试更改选项:cwd

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

对此

            "cwd": ""
Run Code Online (Sandbox Code Playgroud)


小智 6

更新的解决方案:从 21/1/2021 开始工作

选项1:

  1. 找到并打开用户设置文件:
    • 视窗 %APPDATA%\Code\User\settings.json
    • 苹果系统 $HOME/Library/Application Support/Code/User/settings.json
    • Linux $HOME/.config/Code/User/settings.json
  2. 添加这一行: "python.terminal.executeInFileDir": true

选项 2:

  1. 打开设置编辑器:
    • 在 Windows/Linux 上 - 文件 > 首选项 > 设置
    • 在 macOS 上 - 代码 > 首选项 > 设置
    • 或使用键盘快捷键(Ctrl+,)
  2. 选中以下框:
    • 扩展 > Python > 终端:在文件目录中执行。
    • 或使用搜索栏并输入此设置 id python.terminal.executeInFileDir

  • 截至 2022 年 8 月,这些都不起作用。 (5认同)
  • 理论上听起来不错,但实际上行不通。Shift+Enter 仍然在我的主目录而不是脚本目录中启动 python。 (4认同)

Fiz*_*izz 5

请注意,除非您在代码中将目录作为工作区打开,否则本页面上的解决方案将不起作用。如果您只是打开脚本,这些答案都不起作用。

MSFT 认为这个问题不值得解决。因为岛上的每个人都在工作空间中工作,而不是使用脚本,甚至使用脚本语言。