conda环境克隆后pandas版本显示异常,这是bug还是预期行为?
Conda克隆环境后Pandas版本不一致的原因及解决办法
这不是Conda的bug,是Jupyter Lab的内核关联机制导致的预期外行为,核心原因是Jupyter内核与Python解释器路径绑定,而非环境名称:
问题根源
- 克隆
env到env_save时,Conda确实完整复制了原环境的所有包(包括Pandas 2.0.3),但Jupyter Lab的内核是基于Python解释器的绝对路径注册的。 - 如果你之前在
env环境中启动过Jupyter Lab并使用过默认内核,这个内核的路径指向env环境的Python解释器。切换到env_save环境启动Jupyter时,若未指定对应内核,Jupyter会默认使用已注册的、指向原env环境的内核——此时单元格中的代码实际运行在env环境(已更新Pandas到2.2.2),而!pip list是在env_save的shell环境中执行,所以显示该环境实际安装的2.0.3版本。
解决步骤
- 激活
env_save环境,为其注册专属Jupyter内核:conda activate env_save python -m ipykernel install --user --name env_save --display-name "Python (env_save)" - 重启Jupyter Lab,在页面右上角的内核选择器中切换到
Python (env_save)。 - 此时再执行
import pandas; print(pandas.__version__),就会显示正确的2.0.3版本。 - 若不再需要原
env环境的旧内核,可执行以下命令删除:jupyter kernelspec remove env
内容的提问来源于stack exchange,提问作者Fred Dujardin
相关产品推荐
相关产品推荐

