jenkins构建--代码中导入的模块找不到
当jenkins构建代码时遇到
File "D:\PycharmProjects\case\shushufufu.py", line 21, in <module> from common.TestLogin import CeShi as Url ModuleNotFoundError: No module named 'common'
如这种导入模块错误时,可以在导入模块代码前加上
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
注意需要在导入的from common.TestLogin import CeShi as Url前面加上。
代码作用:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
这行代码的作用是将当前脚本所在的目录的父目录添加到 Python 的模块搜索路径 sys.path
中。
具体来说,这行代码的执行过程如下:
-
os.path.abspath(__file__)
:获取当前脚本的绝对路径。 -
os.path.dirname(os.path.abspath(__file__))
:获取当前脚本所在目录的路径。 -
os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
:获取当前脚本所在目录的父目录的路径。 -
sys.path.append(...)
:将上一步得到的父目录路径添加到sys.path
中,这样 Python 解释器在导入模块时就会搜索这个新的路径。
通过这种方式,可以确保 Python 能够找到并导入当前脚本所在目录的父目录中的模块,这对于组织项目结构中的模块导入非常有用,尤其是在复杂的项目结构中。