簡體   English   中英

VSCode 中的 Python:每次都將工作目錄設置為 python 文件路徑

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

所以我想從 Spyder 遷移到 VSCode,我遇到了這個問題,我無法訪問數據集,因為我的工作目錄與數據集的路徑不同。

launch.json不是為我自動生成的,因為我沒有調試任何東西(我試過這個)。

如何在 VSCode 中將工作目錄設置為始終是我要運行的 Python 文件的目錄? (如果這是不好的做法,你能告訴我一個易於使用的配置嗎?)我想為 VSCode 的 IPython 終端設置它。

修改此設置:

File > Preferences > Settings > Python > Data Science > Execute in File Dir

更新的解決方案:從 21/1/2021 開始工作

選項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

您可以在Visual Studio Code 用戶指南中找到有關launch.json設置文件的更多詳細信息,包括如何創建一個及其含義。

簡而言之,您應該能夠創建一個launch.json文件,一個.vscode您通常使用Open Worspace打開的目錄的子文件夾,然后粘貼另一個答案提供的代碼段。 如果您發現它不起作用,您可以嘗試從以下位置更改cwd選項:

            "cwd": "${fileDirname}"

對此

            "cwd": ""

更新的解決方案於 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.

將以下設置添加到您的settings.json

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

S 博士的解決方案中,我添加了Code Runner擴展中的"code-runner.fileDirectoryAsCwd": true設置。 第一個設置僅在終端中運行時將工作目錄設置為 python 文件路徑。 但是,如果使用CTRL+ALT+N在“輸出”選項卡中運行代碼,則工作目錄將恢復到根目錄。 這也可能是launch.json文件中的任何設置(例如"cwd": "${fileDirname}"不起作用的原因,我也嘗試過。 第二個設置解決了這個問題,即使您選擇在終端之外運行代碼,它也允許您將工作目錄設置為 python 文件的路徑。

請注意,除非您在 Code 中將目錄作為工作區打開,否則此頁面上的解決方案將不起作用。 如果您只是打開腳本,這些答案都不起作用。

MSFT 不認為這是一個值得解決的問題。 因為他們島上的每個人都在不使用腳本的工作空間中工作,即使使用腳本語言也是如此。

對我有用的 (16/01/2023) 是轉到文件>首選項>設置,我剛開始在“搜索設置”字段中輸入“執行文件”,最上面的結果是“ Python › 終端:在文件目錄中執行”。 無法評論調試環境。

我嘗試了所有這些解決方案都沒有效果。 我的問題只是訪問 python 中當前文件夾中的文件,我在腳本開頭解決了這個問題:

os.chdir(os.path.dirname(__file__))

這對我有用:

將其包含在您的/.vscode/launch.json

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

來源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM