假设项目目录结构是:
common
--dateutils.py
scrip
--report.py
当我们在report.py中直接使用
from dateutils import DateUtils
会报找不到模块的错误:No module named dateutils
原因是因为common文件夹并不在python搜索module的路径中,解决办法是在import语句之前将common加入搜索路径中
pypath = os.path.join(os.path.abspath(os.path.dirname(__file__)), '../common')
sys.path.append(pypath)
__file__是当前文件的名字,os.path.dirname(__file__)是当前文件所在路径
os.path.abspath是python中规范化的绝对路径,os.path.join是在当前路径后加上../common;
最后pypath的结果就是common文件夹的绝对路径。
sys.path.app(pypath)就是将common加入到系统搜索路径中。