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

Python in VSCode: Set working directory to python file's path everytime

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

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

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

您可以在 the Visual Studio Code User Guide 中找到有关 launch.json 设置文件的更多详细信息,包括如何创建一个设置文件及其含义。

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

            "cwd": "${fileDirname}"

至此

            "cwd": ""

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

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

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

选项 1:

  1. 找到并打开用户设置文件:
    • Windows %APPDATA%\Code\User\settings.json
    • macOS $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

将以下设置添加到您的 settings.json

    "python.terminal.executeInFileDir": true,
    "code-runner.fileDirectoryAsCwd": true

Dr. S's solution I added the "code-runner.fileDirectoryAsCwd": true setting from the Code Runner 分机。第一个设置仅在终端中为 运行 时才将工作目录设置为 python 文件路径。但是,如果输出选项卡中的代码为 运行 和 CTRL+ALT+N,则工作目录将恢复为根目录。这也可能是 launch.json 文件中的任何设置(例如 "cwd": "${fileDirname}" )不起作用的原因,我也曾尝试过。第二个设置解决了这个问题,它允许您将工作目录设置为 python 文件的路径,即使您选择 运行 终端外的代码也是如此。

更新的解决方案自 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.

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

MSFT 不认为这是一个值得解决的问题。因为他们岛上的每个人都在不使用脚本的工作区工作,即使使用脚本语言也是如此。