背景:
當前demo.py 文件,所處目錄 D:\py\test\TestCase,需要調用test 目錄下的模塊,嘗試了 新建__init__.py 文件+ import test.模塊名的方法,無效.
報錯信息:
D:\py\test\TestCase>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\test>tree # 不帶參數只顯示目錄,不顯示目錄下的文件
D:. └───TestCase
查看目錄和文件:
D:\py\test>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\test\TestCase>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