Python 导入上层目录模块

背景:

当前demo.py 文件,所处目录 D:py estTestCase,需要调用test 目录下的模块,尝试了 新建__init__.py 文件+ import test.模块名的方法,无效.

报错信息:

D:py	estTestCase>python demo.py
Traceback (most recent call last):
File "demo.py", line 24, in <module>
from test.logger_base import logger
ImportError: No module named logger_base

解决方案:

要导入上级目录,可以借助 sys.path,把上级目录加到 sys.path 里。

sys.path 作用:当使用import语句导入模块时,解释器会搜索当前模块所在目录以及sys.path指定的路径去找需要import的模块。

添加前2行代码,直接调用模块即可:

1 import sys
2 sys.path.append("..")
3 from logger_base import logger

运行结果:

引申:如何导入下级目录?

要在下级目录中写一个__init__.py文件?  

参考命令行:

Windows 下查看当前目录结构:

D:py	est>tree          # 不带参数只显示目录,不显示目录下的文件
D:. └───TestCase

 

查看目录和文件:

D:py	est>tree /F  # F 显示目录 +文件,递归显示

D:.
│ .gitignore
│ base_utils.py
│ base_utils.pyc
│ compile.py
│ drv_helper.py
│ GPx_utils.py
│ logger_base.py
│ mapping.py
│ OS_utils.py
│ OS_utils.pyc
│ p4apis.py
│ README.md
│ utils.py
│ __init__.py
│ __init__.pyc
│
└───TestCase
base_testcase.py
base_testcase.pyc
CXXX_APPS_XXX.py
demo.py
__init__.py

  

 
D:py	estTestCase>python demo.py
Traceback (most recent call last):
File "demo.py", line 24, in <module>
from test.logger_base import logger
ImportError: No module named logger_base
原文地址:https://www.cnblogs.com/ASAP/p/11092241.html