報錯提示:ImportError: Start directory is not importable: 'D:\\PyCharm-Workspace\\testcases'


以下兩種路徑實現代碼存放在path.py中,查看區別:

base_dir = os.path.dirname(os.getcwd())       # 第一種,當前目錄
# os.getcwd() 定位路徑為common
# os.path.dirname(os.getcwd()) 定位路徑為API_work
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))    # 第二種,該代碼存放的根目錄
# os.path.abspath(__file__) 定位路徑為path.py
# os.path.dirname(os.path.abspath(__file__)) 定位路徑為common
# os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 定位路徑為API_work

 

 以上兩種方式,在path.py中執行,print輸出均為:

 

 但第一種方式,在run.py中調用path.py中的base_dir屬性,查找 "test_*.py" 的根目錄就會出現下以報錯:

 

 原因

1、在run.py中調用path.py 中的 os.getcwd() 代碼 ,就是定位 run.py 的根目錄;

即:

      os.getcwd()   定位路徑為API_work

      os.path.dirname(os.getcwd())   定位路徑為API_work的上一層目錄,因找不到上一層目錄,所以報錯;

2、在run.py中調用第二種方式,是查找path.py的根目錄,所以可執行正常;

 

總結:

            其他模塊會調用固定路徑時,不要使用 os.getcwd() 當前定位方式來實現;使用 os.path.abspath(__file__) 實現。


免責聲明!

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



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