关于服务器环境上conda、pip依赖安装问题,详解版!建议收藏

最近碰到一个问题,起因是我在训练的时候。提示:
ModuleNotFoundError: No module named 'cv2'  没有找到对应模块问题。

后面运行命令:

pip show opencv-python
pip show opencv-python
Name: opencv-python
Version: 4.1.2.30
Summary: Wrapper package for OpenCV python bindings.
Home-page: https://github.com/skvark/opencv-python
Author: 
Author-email: 
License: MIT
Location: /home/cgq/.local/lib/python3.8/site-packages
Requires: numpy
Required-by: 

又有对应的依赖版本信息。

之后我检测了另外一个服务器环境:
运行命令

which python   检测python环境
which pip      检测pip环境
which conda    检测conda环境

可以看到,服务器conda环境路径没什么问题。

后面我检查了一下pip环境的路径,和conda环境的路径。

(deeplab) cgq@xmlg:~/.conda/envs/deeplab/bin$ which pip
/home/cgq/.local/bin/pip
(deeplab) cgq@xmlg:~/.conda/envs/deeplab/bin$ which conda
/home/xmlg/miniconda3/condabin/conda

发现两个环境的路径不在同一个地方。 因为服务器是有很多个人用,pip配置的环境为全局环境,而conda配置的环境是我们自己的环境。 这就导致,我们在运行命令: pip install  xxx package 包的时候,依赖包会安装在全局环境下,没办法导入我们自己的项目环境。

目录

方法1:

1. 强制使用虚拟环境中的 pip

手动使用虚拟环境的 pip:

验证路径:

方法2:

2. 更新环境的优先级

1. 检查 PATH 变量顺序

2. 重新安装 pip 到正确的路径

方法3:

3. 清除用户全局的 pip

4. 重建虚拟环境


发现问题之后,就有解决思路了。

方法1:
 

1. 强制使用虚拟环境中的 pip

手动使用虚拟环境的 pip

在 Conda 虚拟环境中,虚拟环境的 pip 应该位于 ~/.conda/envs/deeplab/bin/ 目录下。你可以手动调用这个路径下的 pip,如下所示:

~/.conda/envs/deeplab/bin/pip install opencv-python

这样就确保你使用的是 deeplab 环境下的 pip,而不是全局的 pip

验证路径:

再次验证虚拟环境中 pippython 的路径是否一致:

which python
which pip

两者都应该指向 ~/.conda/envs/deeplab/bin/ 目录。如果 pip 还指向错误的位置,你可能需要修改系统的 PATH 变量。

方法2:

2. 更新环境的优先级

有时,全局的 pip 会覆盖掉 conda 环境的 pip。为了解决这个问题,你可以尝试以下几步:

1. 检查 PATH 变量顺序

运行以下命令检查当前的 PATH 变量:

echo $PATH

确保 ~/.conda/envs/deeplab/bin 目录排在前面。如果不是,可以手动将该路径添加到 PATH 变量的前面:

export PATH=~/.conda/envs/deeplab/bin:$PATH

然后再运行 which pip 看是否有变化。

2. 重新安装 pip 到正确的路径

你可以使用 Conda 自带的 pip 包来确保安装在虚拟环境中:

conda install pip

然后再检查 which pip 看路径是否正确。如果依然无效,继续下一步。

方法3:

3. 清除用户全局的 pip

如果你不打算使用全局的 pip,可以删除全局的 pip 安装,从而让 conda 虚拟环境的 pip 默认生效。

rm -rf ~/.local/bin/pip

这会删除当前用户的全局 pip,然后使用 conda 环境中自带的 pip
注意:如果你是实验室公共的服务器,最好不要这么做

4. 重建虚拟环境

如果问题仍然存在,建议你重建虚拟环境,以确保没有残留的错误配置:

conda remove -n deeplab --all
conda create -n deeplab python=3.8
conda activate deeplab
conda install pip

这会重新创建并配置一个干净的环境。

总结这个问题主要是全局 pipconda 环境的 pip 冲突。你可以通过手动指定虚拟环境的 pip 路径,或者调整 PATH 变量,确保 condapip 在系统中优先。当然,这个问题,对于许多初学者或者刚接触,会容易无从下手。关键在于发现问题的原因,因为这比解决问题更加重要!!!

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stuomasi_xiaoxin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值