1、报错场景
我在windows上训练了一个机器学习模型,用joblib
保存后上传到服务器上。在服务器上运行python脚本报错:ImportError: No module named joblib
,所以我使用pip3 install joblib
安装joblib
这个包,安装完之后通过pip3 list可以看出我已经安装了这个包:
但是,通过./run.py
执行python脚本仍然报错:ImportError: No module named joblib
2、解决办法
后来才发现,我的run.py
的第一行命令是#!/usr/bin/env python
,我d的linux服务器上有两个python版本,直接使用python
是默认使用的python2
。因为pip3 install xxx
命令安装的包对应的是python3
,所以将run.py
的第一行命令改为#!/usr/bin/env python3
即可
补充:
如果在linux上使用windows训练好且保存的模型报错(可能是scikit-learn等库的版本不一样),那么建议在linux上重新训练一遍并且保存训练好的模型,这样就可以多次供后端调用了。