自动化随笔

  • 自建module导入 

  导入自建module常见两种场景:同级目录下module导入、不同目录的module导入

 

  同级目录导入:

  即当前文件与自定义模块在同一父目录下;自定义module可以是文件,也可以是包(带__init__py的文件夹)

  

 

 

   

 

 

   如上图所示,可直接使用 import module_name 导入

  

  不同目录导入:

 

 

   无法直接使用 import module_name ,会返回无法找到module的错误

  目前了解到三种方法进行导入:

  1、当前文件的父级目录会自动添加至系统路径中,如下图使用 sys.path

  

  若自定义模块在此目录下,如common,或多级子目录下,如common/test/test.py,可使用from...import...进行导入,具体见上图

 

  2、在不同父目录下,无法使用上一种方法,如下面的目录

#|-- common
#|  |-- test
#|    |-- test_module.py
#| #|-- testCase #|  |-- main.py

  若要在main.py中导入test_module.py 或其中的方法,需先将目标模块的上级目录添加到系统路径中

  

 

 

   

  简单总结以上两种方法,实际上均是将自定义模块的某一级父目录添加至系统路径;再以该路径为起点往下级寻找 (from),直至最近的一级父目录,再进行 import module_name

   

  3、使用pth文件配置自定义模块的路径

  参考:https://blog.csdn.net/pwc1996/article/details/52577148

   

  其他注意问题:

  1、导入时符号 “.” 的左边必须是文件夹,即from  dir.dir.dir  import  module ,或者from  dir.dir.file  import  func 的形式,参考:https://www.cnblogs.com/tingguoguoyo/p/10834393.html

  2、多层导入问题,如B导入A,C导入B并引用A的内容,这种情况下无法引用A的内容,参考:https://blog.csdn.net/gvfdbdf/article/details/52084144

  3、相对路径导入,参考:http://stackoverflow.com/questions/16981921/relative-imports-in-python-3

  4、自定义模块中若使用了路径,如 open(path) 或其他方法,path尽量使用绝对路径,避免导入后无法找到相关路径

 

-------------------------------------------------------2021-12-06------------------------------------------------------

模块导入参考:python模块化包管理与import机制

 

posted @ 2021-05-28 23:44  TGZZ  阅读(107)  评论(0)    收藏  举报