Python 導入上層目錄模塊


背景:

當前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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM