sys.path 返回的是一个列表!
该路径已经添加到系统的环境变量了,当我们要添加自己的搜索目录时,可以通过列表的append()方法;
对于模块和自己写的脚本不在同一个目录下,在脚本开头加sys.path.append(‘xxx’):

用命令行去执行测试脚本的时候,如不添加当前项目路径,会报找不到模块的错。
在pycharm中运行的时候,pycharm会自动将项目所在目录添加到了sys.path中,所以从项目根目录查找是可以找到该模块的。

#获取项目相对路径
basedir2=os.path.dirname(os.path.dirname(__file__))
sys.path.append(basedir2)

import os
basedir1=os.path.dirname(__file__)
basedir2=os.path.dirname(os.path.dirname(__file__))
print(basedir1)
print(basedir2)

D:/shaoxchen/joyrun_auto/tools
D:/shaoxchen/joyrun_auto

如果需要导入上级目录的文件,需要获取项目相对路径才可以,不然会找不到导入的模块
例如测试脚本yp-exp.py想要引用test_case模块里引用的其他模块(init.py)

文件目录
test_case
    init.py
    all_case
    	init.py
    	yp-exp.py
     
#错误例子
在yp-exp.py
import os 
import sys
basedir2=os.path.dirname(os.path.dirname(__file__))
from test_case import *

#会报错 ModuleNotFoundError: No module named ‘test_case’–找不到test_case的包
#打印basedir2的路径是 ***\test_case,这妥妥的不是项目路径,所以找不到

#正确例子
在yp-exp.py
import os 
import sys
basedir2 = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
sys.path.append(basedir2)

#打印basedir2,这才是项目的根路径,才能找到test_case模块

Logo

华为AI开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐