脚本在本地执行完全正确,但是Jenkins执行是一直报错,报错信息如下
测试小伙伴给我的问题排查方向如下:
1、未安装Crypto包;
2、路径不对(包括包名不一致);
3、版本不兼容;
4、缺少_init_文件
菜鸟当时一直怀疑是自己代码的问题,折腾了好久
后来找开发帮忙发现,发现了对应的问题点
开发小伙伴的提供的排查思路如下:
1、首先排除网络问题, 方式是 本地启动 , 看是否复现
2、如果不能复现, 删除本地仓库中缺少的包, 然后重新本地构建启动, 看是否能复现
3、如果依然不能, 去公司私服上看能否找到包(公司会自己有一个管理三方包的仓库)
最终就是在Jenkins部署的目标服务器,也就是实际跑python的服务器上安装缺少的包
处理方案,找到Jenkins部署的目标服务器,做如下操作
1、安装对应包install pycryptodome
2、到对应的路径下修改crypto为Crypto即可
PS:也有其他大佬当时也给过一个链接,让我试着去排查,记录如下:
Python导入模块的3种方式(超级详细)---》
http://c.biancheng.net/view/4645.html#:~:text=%E8%A7%A3%E5%86%B3%E2%80%9CPython%E6%89%BE%E4%B8%8D%E5%88%B0,%E8%AE%BE%E7%BD%AEpath%20%E7%B3%BB%E7%BB%9F%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E3%80%82
我也尝试过,将本地python环境原来不是venv,改换为venv后再集成运行
也试过,上文中的对应脚本中加模块模块完整路径(我本地的路径,感觉自己当时魔障了)