vscode 导入自定义包报错 ModuleNotFoundError: No module named xxx方法合集

导入自定义包一直报错no module named xxx,我都疯了!!!尝试了很多方法,不晓得为啥都不行。千辛万苦最终找到了解决之道!!!!喜大普奔

试过的一些方法:

方法一:

打开launch.json文件(在项目目录隐藏文件夹.vscode下面,没有的话,在debug按钮旁有个创建launch.json点击即可),添加"env"跟“envFile”两个条目,如下:

"env": {"PYTHONPATH":"${workspaceRoot}"},
"envFile": "${workspaceRoot}/.env"

然后在项目的根目录下添加.env文件,文件中加入PYTHONPATH=./my_module
具体可见该链接:更改launch.json文件方法一
还有个也是更改launch文件的方法,距离链接:更改launch.json文件方法二
反正这方法我不行。。。

方法二:

在文件中加入地址

import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))

这里涉及到被调用文件与调用文件嵌套几层,具体看该链接:文件路径嵌套法
救大命了,反正我试了不行,可能是我嵌套层数不大对。

方法三:

这个方法也是一个关于导入路径的办法,我觉得这个写的真的很详细,具体链接:有指出调用文件与被调用文件位置关系

终极大法:

import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)

注意,后面三行要写在其他导包之前。,具体链接:指路这里

(如果你碰到导入上面语句在py文件开头,保存文件后又跳到其他import导入包之后,解决方法:更改setting文件)

总结:

上面写的很多方法,有的是我不能用的,也许对你们有用呢,可以一个个试过去。
发现很多方法都是导入路径的办法,具体,导入路径的作用原理是如何呢?它与导包关系怎样呢?可以继续看这个链接:指路这里

########################我是分割线#######################################
上面最后一个方法似乎不太行了,又新学了个方法,直接将需要导入的py文件路径加入到当前文件下

sys.path.append('被导入文件的地址')

你可能感兴趣的:(python疑难杂症,vscode,ide,编辑器,python)