之前一直用pycharm,確實好用,但是就是太吃內存,后來換vscode,發(fā)現安裝了一些插件之后,也非常好用,決定轉過去,但是執(zhí)行的時候,發(fā)現無法導入一個工程下其他文件夾里面的方法。總是提示no module named ***。
網上找了好多方法,都是行不同,后來找到一篇終于解決了。
首先明確一個問題:你是用vscode原生的跑,還是用code runner跑,這兩個地方的配置地方是不一樣的。
1、vscode原生執(zhí)行,也就是F5,修改地方為:
cmd+shift+p,選擇open user settings

加上這幾句
"terminal.integrated.env.osx": {
"PYTHONPATH": "${workspaceFolder}/",
},
"terminal.integrated.env.linux": {
"PYTHONPATH": "${workspaceFolder}/",
},
"terminal.integrated.env.windows": {
"PYTHONPATH": "${workspaceFolder}/",
},
然后在debug里面create a json文件,加上這兩句
"env": {"PYTHONPATH":"${workspaceRoot}"},
"envFile": "${workspaceRoot}/.env",
保存,重啟,執(zhí)行F5,發(fā)現可以
2、code runner執(zhí)行,也就是ctrl+option+n
還是cmd+shift+p,選擇open user settings
加入
"code-runner.fileDirectoryAsCwd": true,
"code-runner.executorMap": {
"javascript": "node",
"python": "set PYTHONIOENCODING=utf-8 && set PYTHONPATH=. && python -u",
"go": "go run",
},
"code-runner.runInTerminal": true
保存,重啟,執(zhí)行,也可以了。
前面主要修改點就是在"python": "set PYTHONIOENCODING=utf-8 && python -u"里面加了set PYTHONPATH=.
set PYTHONIOENCODING=utf-8
原因說明:
首先我們要搞清楚 Python 解釋器查找模塊文件的過程。通常情況下,當使用 import 語句導入模塊后,Python 會按照以下順序查找指定的模塊文件:
- 在當前目錄,即當前執(zhí)行的程序文件所在目錄下查找;
- 到 PYTHONPATH(環(huán)境變量)下的每個目錄中查找;
- 到 Python 默認的安裝目錄下查找。
以上所有涉及到的目錄,都保存在標準模塊 sys 的 sys.path 變量中,通過此變量我們可以看到指定程序文件支持查找的所有目錄。換句話說,如果要導入的模塊沒有存儲在 sys.path 顯示的目錄中,那么導入該模塊并運行程序時,Python 解釋器就會拋出 ModuleNotFoundError(未找到模塊)異常。