之前在做接口自动化时,jenkins 执行 job 安装 requirements.txt 中的第三方依赖库时折腾了许久,网上查的解决方案均未生效,后来找出一条解决方法,做个记录,希望帮助到遇到同样问题的小伙伴。
我们都知道可以通过生成 requirements.txt 导出脚本中依赖的第三库的信息,在 pycharm 的控制台执行 “pip freeze > requirements.txt” 即可生成该文件。
在 jenkins 上执行接口自动化脚本时,在执行 “pytest XXX.py” 这样的脚本前,先安装 requirements.txt 中第三方依赖库,简单的命令是:
pip3 install -r requirements.txt
当执行 job 时,会默认从 “https://pypi.org/simple/wxpython/Could"找第三方库,但经常会连不上该镜像源。网上查的资料,一般是说换成国内的镜像源,豆瓣,清华、中科大的,并且信任对应的域名,但我试了下,能找到一些第三方库,但是还有一些找不到,报 “ not find a version that satisfies the requirement jsonpath==0.82” 类似的 error。
一开始以为网络问题,试了好多次都无法下载安装。
最终,解决方法为,把安装命令改为:
python3 -m pip install -r /XXXXX/requirements.txt
/XXXXX/是你的项目目录。
困扰了好几天的问题,竟然就这么简单的解决了,也不需要指定镜像源。
有时候你可能会报 “package wheel is not installed” 警告,我是通过重新强制安装 pip 解决的:
pip install -U --force-reinstall pip
如果你指定了清华或中科大的镜像源,因为这两地址是 https 的,如果你的 openssl 没配置好,会报 “ Can't connect to HTTPS URL because the SSL module is not available” 的错误,解决方法可参考我的另外一篇帖子:https://testerhome.com/topics/30271
如果对你有帮助,点个赞吧!