python系统路径添加错误
- 报错原因
- 原因分析
- 解决办法
- 补充
最近写代码的时候遇到一个问题,就是想添加工程下fu_convert文件夹下自己编写的convert_fw.py模块,但是出现报错,是个比较低级的问题,但还是简单记录一下
报错原因
无法找到模块convert_fw;
相关代码如下:
sys.path.append(parent)
sys.path.append(parent+"/FU")
sys.path.append(parent+"/fu_convert")
import convert_fw
原因分析
猜测sys.path没有添加到正确的路径,导致python脚本在import convert_fw模块时候,无法在sys.path中找到convert_fw所在的路径;于是如下图,打印出了一下当前路径parent,是C:\Users\Rio.lin\Desktop\Fu-tool\GUI;
而自己添加sys.path的时候是直接在parent下添加,即sys.path.append(parent+“/fu_convert”);这样是错误的,因为fu_convert文件夹并不在C:\Users\Rio.lin\Desktop\Fu-tool\GUI,而是在它的父目录C:\Users\Rio.lin\Desktop\Fu-tool下;要使用父目录我们可以用sys.path.append(str(Path(file).resolve().parents[1]
所以自己添加sys.path时候应该在parent的上一级目录下再去添加fu_convert文件夹,这样我们的python脚本才能imort到fu_convert文件夹下的convert_fw模块
解决办法
利用
sys.path.append(str(Path(__file__).resolve().parents[1].joinpath('fu_convert')))
替换掉错误的添加语句
sys.path.append(parent+"/fu_convert")
将搜索路径添加进去,这样即可正常运行
补充
另外,其实在windows环境的编程中添加路径分隔符应该是“\\”,而不是“/”,所有下述的写法也是错的
sys.path.append(parent+"/fu_convert")