Jupyter笔记本不反映虚拟环境中的库版本更改



我是jupyter笔记本电脑和虚拟环境的新手。我想我陷入了一个微不足道的问题。

我正在尝试在Jupyter笔记本中导入matplotlib,导入操作正常。然而,它使用了错误版本的库(也在系统范围内安装(,我不知道如何强制它使用虚拟环境中的库。

在我的虚拟环境中,我想使用matplotlib的最新版本,因此我做到了pip install --upgrade matplotlib在我的虚拟环境中。升级运行良好。现在,如果我在虚拟环境中执行pip show matplotlib,我会得到:

Name: matplotlib
Version: 2.2.5
...

相反,如果我在家里执行同样的命令,我会得到:

Name: matplotlib
Version: 1.5.1

然而,如果在我的jupyter笔记本我做

import matplotlib
print ("matplotlib version:",matplotlib.__version__)

我得到:

('matplotlib version:', '1.5.1')

你能帮我理解我做错了什么吗?

我找到了解决问题的方法。首先,我读了这篇很长的帖子,建议大家使用condapip

然后我明白了外壳环境是在Jupyter笔记本启动时确定的,而Python可执行文件是由内核确定的,两者不一定匹配

我通过在我的jupyter笔记本的开头放以下内容来理解这一点:

paths = !type -a python
for path in set(paths):
path = path.split()[-1]
print(path)
!{path} -c "import sys; print(sys.path)"
print()
!type python
import sys
sys.executable
!pip show matplotlib

它表明我仍然在使用matplotlib库的旧版本。

因此我添加了

!{sys.executable} -m pip install --upgrade matplotlib

重新启动了我的jupyter内核,这解决了我的问题。

我希望这个解决方案能帮助其他处于同样情况的人。

最新更新