一、背景
利用机器学习预测接口访问量和识别异常接口时,运行脚本报错“ImportError: dlopen: cannot load any more object with static TLS”
服务器环境为centos7,该脚本在mac下调试可正常运行,迁移到服务器后出现上述报错。
二、分析
1.该脚本在本地可运行,服务器上不可以运行,可能是环境依赖问题
2.本地输出改脚本运行的模块,查看对应模块的版本,因为排查本次报错的为scikit-learn
pip freeze > requirements.txt
3.服务器上安装对应版本的模块
pip install scikit-learn==1.4.2
4.运行脚本可正常运行
三、总结
注意,本次问题解决的前提在脚本本身可以运行迁移后无法运行,如果脚本本身还无法正常运行可能不适用于此方法。
另外,python写的脚本对各个模块和版本依赖比较高,方案1是开始前就确认好所需的版本迁移后安装相应版本和模块;方案2,就是使用docker来进行搭建方便迁移。