求助:这个自动化过程本地执行没问题,cmd 执行也没问题。
刚接触 Jenkins,部署这块不是很熟悉,是否也是跟路径有关呢?
----------------------------------------------20180703----------------------------------------------
回头看看发现还不是很懂,研究了下,记录下。
解决方案:
当前.py 文件路径 E:\WEB-UI\tool\jenkins
# -*- coding: utf-8 -*-
import os
if __name__ == '__main__':
print(os.path.dirname(os.path.abspath('.')))
print(os.path.abspath(os.path.join(os.path.dirname(__file__))))
print(os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir)))
以下是用 pycharm 执行的结果:
E:\WEB-UI\tool
E:\WEB-UI\tool\jenkins
E:\WEB-UI\tool
以下是 jenkins 执行的结果:
C:\Users\zhangjg\.jenkins\workspace #返回Jenkins安装路径
E:\WEB-UI\tool\jenkins #返回当前.py路径
E:\WEB-UI\tool #返回当前.py上级目录路径
由此可见,使用
print(os.path.abspath(os.path.join(os.path.dirname(__file__))))
无论是在 Jenkins 执行还是 pycharm 执行均返回当前文件的绝对路径
----------------------------------------------20180703----------------------------------------------
以下转载自 https://www.cnblogs.com/meitian/p/6810652.html
还有种情况,导入自定义的包
jenkins 需要执行.py 的文件加上
rootpath = str('E:') # 项目目录 E:\WEB_UI
syspath = sys.path
sys.path = []
sys.path.append(rootpath) # 将工程根目录加入到python搜索路径中
sys.path.extend([rootpath + i for i in os.listdir(rootpath) if i[0] != "."]) # 将工程目录下的一级目录添加到python搜索路径中
sys.path.extend(syspath)