如果你在vscode中中使用python进行对文件组织,一定遇到过这个问题。比如我的文件组织结构如图所示:
我在.\src\test.py
中想要引入data
中的数据,再pycharm中,我们会写成open("../data/data.txt", "r")
,那是因为pycharm运行python文件是默认在python文件所在的目录下运行的,然而我们的这个项目中,是从src文件夹的外层,也就是"."
根目录运行的,所以应该使用open("./data/data.txt", "r")
。当然,如果你嫌麻烦,还有一个方法,就是在使用CodeRunner之前在vscode的控制台中输入cd .\src\
进入src目录,再运行就没问题了。
第二个问题,如果我们写了个小工具集,并通过__init__.py
将它申明成一个包,那么在使用这个之前,我们需要通过sys.path.append()
方法将这个包的路径添加进入解释器依赖项的搜索路径中,因为我们运行的主文件都在src
中,所以入口文件和工具集中的文件不在同一目录下,因此,解释器搜索不到,我们需要手动添加。比如,我现在想要在.\src\test.py
中使用utils.DataLoader
和utils.WavPkg
,那么我们就需要在test.py
的开头填上如下的话:
import sys
import os
path = os.path.dirname(__file__)
path = "/".join(path.split("\\")[:-1])
sys.path.append(path)