背景:
当前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