1、在Python中以相对路径或者绝对路径来导入文件或者模块的方法
今天在调试代码的时候,程序一直提示没有该模块,一直很纳闷,因为我导入文件一直是用绝对路径进行导入的。按道理来讲是不会出现模块找不到的情况的。
最后仔细分析了整个代码的目录结构,才发现了问题。
下面依次来说明一下今天的情况
先看导入的代码:
在demo——mnist.py文件中执行以下两种导入操作
# 第一处
from gcforest.gcforest import GCForest
from gcforest.utils.config_utils import load_json
# 第二处
config = load_json("demo_mnist-ca.json") # 里面传入的是文件的位置,这个函数是读取配置文件的内容
然后看一下目录的结构
在此例中,demo_mnist,py为主文件。它第一处要导入的是它当前目录的父目录下的一个子目录中的一个目录中的文件。
所以以绝对路径导入这个文件就是 from lib.gcforest.gcforet import GCForest
以相对路径导入这个文件就是 from ..gcforest.gcforet import GCForest
第二处导入的是它统一个目录下的另一个文件,所以可以直接导入
所以修改的导入代码为:config = load_json("demo_mnist-ca.json")
2、 顺便复习一下相对路径和绝对路径的概念