conda执行clone环境后,并且环境嵌套导致在新环境中使用pip安装包而无法导入(ModuleNotFoundError)

参考链接:
使用conda activate 虚拟环境后,pip install下载的包在虚拟环境中找不到

问题描述

在环境中pip安装好了某个软件包,但是python中import失败,提示找不到软件包,报错ModuleNotFoundError XXXXXXXXXX

情景再现

问题是在conda中克隆了一个环境后,在克隆环境内pip安装出现的错误。

环境克隆:(已有环境名为A,需要生成的环境名为B:)

conda create -n B --clone A

当时为了偷懒,为了复制环境A的名字,使用conda activate 的tab环境名补全先进入了环境A,

然后在环境A中执行克隆命令后,直接激活新环境B
在这里插入图片描述
在环境B中pip安装软件包后,下面是出现的神奇状况:

在这里插入图片描述
使用pip list查看安装的软件包,也能看见“torch_geometric”
在这里插入图片描述
但就是无法导入,在pycharm中使用环境B也显示缺失软件包“torch_geometric”

问题排查

在查看文章:使用conda activate 虚拟环境后,pip install下载的包在虚拟环境中找不到之后,执行命令

conda deactivate

果然返回到了上一层环境,环境A
在这里插入图片描述
执行pip list后,发现之前的软件包安装到了环境A,但是在环境B中也可以看到。
合理怀疑是环境B的pip依旧用的环境A的路径,也就是说克隆环境A到B后,我又从环境A直接activate到了B,导致现在环境B的pip是乱的

问题解决

先使用conda deactivate命令返回到base环境,然后activate到出问题的环境B,然后使用conda命令重新安装pip:

conda install pip

这样会覆盖掉环境B中错误的pip

重新安装过后,执行pip list重新查看pip安装的软件包列表,果然,在环境B中软件包“torch_geometric”并没有安装,而是被错误安装到了环境A中。

环境B的pip list
现在在环境B中pip重新安装软件包即可

总结

目前并不清楚该问题是环境嵌套,还是克隆环境的原因,但出现此类邪门问题,可以试试排查软件包到底安装到了哪里,从而定位问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值