linux服务器上import joblib报错 ImportError: No module named joblib

在Windows上训练的机器学习模型在Linux服务器上运行时遇到ImportError,问题出在Python版本不一致。通过pip3安装的joblib对应Python3,而服务器默认使用Python2。修改run.py的第一行命令为#!/usr/bin/envpython3以指定Python3环境,可以解决此问题。若模型因库版本差异报错,建议在Linux上重新训练并保存模型。
部署运行你感兴趣的模型镜像

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上重新训练一遍并且保存训练好的模型,这样就可以多次供后端调用了。

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 修复 Python 中 `ImportError: No module named 'cv2'` 问题 在使用 OpenCV 进行图像处理时,常遇到 `ImportError: No module named 'cv2'` 的错误。该问题通常由模块未正确安装、Python 环境路径不一致或包未被正确识别引起。 #### 1. 确保正确安装 OpenCV 模块 在 Ubuntu 或其他 Linux 环境中,若使用 `pip install opencv-python` 或 `pip install opencv-python-headless` 安装 OpenCV,但提示 `ImportError`,可能是缺少 `skbuild` 模块所致。此时应先安装 `scikit-build`,再尝试安装 OpenCV: ```bash pip install scikit-build pip install opencv-python ``` 若仍无法安装,可尝试使用系统包管理器安装 OpenCV: ```bash sudo apt-get install python3-opencv ``` #### 2. 检查 Python 环境是否匹配 即使 `opencv-python` 已通过 `pip` 安装,若当前使用的 Python 解释器与安装路径不一致,也会导致模块未被识别。可通过以下命令确认当前 Python 版本和路径: ```bash type python3 ``` 确保该路径与 `pip` 安装的路径一致。例如,若使用的是 Anaconda 环境,应激活对应环境并使用 `conda` 或 `pip` 安装模块: ```bash conda activate your_env pip install opencv-python ``` #### 3. 手动复制 cv2 模块 若通过 `pip` 成功安装 OpenCV,但在特定 Python 环境中无法导入 `cv2`,可尝试手动将 `cv2` 文件夹从 Python 全局路径复制到目标环境的 `site-packages` 目录中: ```bash cp -r /usr/local/lib/python3.8/site-packages/cv2 /path/to/your/conda/env/lib/python3.8/site-packages/ ``` 此方法适用于多个 Python 环境共存时的模块同步问题。 #### 4. 确保包结构完整性 若在自定义模块中导入 OpenCV 时遇到路径问题,需确保项目结构中包含 `__init__.py` 文件,以标识为合法模块目录。例如,在 `utils` 文件夹中添加空的 `__init__.py` 文件后,可正常导入: ```python from utils.RandomErasing import RandomErasing ``` #### 5. 验证安装结果 安装完成后,可在 Python 交互环境中验证 `cv2` 模块是否可导入,并查看版本信息: ```python import cv2 print(cv2.__version__) ``` 若输出版本号,则表示安装成功。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值