Python module加载机制剖析
2018-12-17
之前实现了python module多版本动态加载,但是在最近一次一个小哥上传的模型中居然有对.so
文件的import,十万只草泥马,Python居然还有这种操作,所以再一次对Python的import流程做了一次梳理。
之前实现了python module多版本动态加载,但是在最近一次一个小哥上传的模型中居然有对.so
文件的import,十万只草泥马,Python居然还有这种操作,所以再一次对Python的import流程做了一次梳理。
这段时间发现一个python的服务实例经常静默退出,从应用日志里未找到任何异常现场,一切都很正常。
怎么办呢,首先想到的就是完善日志,应用启动入口try住,捕获BaseException异常进行输出,打包上线。
什么,又退出了,看看解释器层面有没有日志,Oh no,这不是JVM,没找到Python解释器层面有任何日志记录,鄙视Python。
这里有一个Python服务,它提供机器学习模型在线服务,用户只要将模型文件和加载、使用模型的的代码文件打包上传,该服务就可以将该模型上线。
无论是那种机器学习模型,要进行使用,肯定逃不了这两个套路: