导入自定义包一直报错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('被导入文件的地址')