在vscode使用相對路徑的python應用報錯找不到該文件的解決方法


在vscode使用相對路徑的python應用報錯找不到該文件的解決方法

情景一:vscode直接用Run Code插件運行報錯

當用vscode打開一個文件夾,我們在這個文件夾的子文件夾中進行代碼編寫,讀取同路徑下的文件。提示報錯,找不到文件。

問題解決方案

方案一:使用vscode直接打開相應目錄,,否則該文件調用相對路徑的文件都會出現問題。

方案二(推薦):通過文件-->首選項-->設置-->搜索Code-run,找到File Directory As Cwd並勾選上即可解決

情景二:在vscode終端中運行該.py文件。

在pycharm中可以運行,vscode中卻出問題,是因為你使用了相對路徑,而相對路徑和終端的cwd有密切聯系

在vscode中,子文件夾內的文件的相對路徑的基准不再是該文件所在路徑,而是用vscode打開的根目錄作為整個項目的相對路徑的基准。項目中所有文件的相對路徑都是指項目根目錄。

VSC默認使用項目文件夾根目錄作為工作目錄(cwd),這會使得子文件夾中的程序無法使用相對路徑.

問題解決方案

方案一:(但是不知道為啥不生效)

在launch.json(可以通過vscodeCtrl+P全局搜索找到該文件)中配置cwd為運行的文件所在目錄

方案二:

#加上下面代碼
import os, sys

os.chdir(sys.path[0])

#然后就可以愉快使用相對路徑了

在命令行中運行 py 文件,工作目錄取決於當前命令行所在的目錄,由於通常我們會將命令行 cd 到 py文件 同目錄下(這樣沒有執行的時候不需要敲一堆路徑,python src/bala/bala/program.py 之類的),工作目錄就與 py文件 同目錄,生成的文件自然在這個目錄下

如果從 vscode 中啟動,如果沒有修改 launch.json 中的 cwd 的值,默認以 "${workspaceFolder}" 作為工作目錄(項目根目錄),所以相對路徑的起點也要從這個目錄開始。

最后

可以學習下:

  • windows環境下vscode中使用python做圖像處理
  • python第三方模塊OpenCV學習下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM