【问题标题】:Jupyter notebook does not reflect library version change in virtualenvironmentJupyter notebook 不反映虚拟环境中的库版本变化
【发布时间】:2020-04-22 13:59:44
【问题描述】:

我是 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')

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

【问题讨论】:

    标签: python matplotlib jupyter-notebook virtualenv


    【解决方案1】:

    我找到了解决问题的方法。首先,我阅读了this long post,我建议大家使用condapip

    然后我明白了shell环境是Jupyter notebook启动时决定的,而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 内核,这解决了我的问题。

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

    【讨论】:

      猜你喜欢
      • 2020-12-16
      • 2018-07-06
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 2021-09-29
      • 2021-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多