在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學習下