Python Jupyter notebook不反映虚拟环境中的库版本更改
我不熟悉jupyter笔记本和虚拟环境。我想我遇到了一个非常琐碎的问题 我正试图在Jupyter笔记本中导入matplotlib,导入工作正常。但是,它使用了错误版本的库(在系统范围内也安装了),我不知道如何强制它在virtualenvironment中使用这个版本 在我的虚拟环境中,我想使用matplotlib的最新版本,因此我做到了Python Jupyter notebook不反映虚拟环境中的库版本更改,python,matplotlib,jupyter-notebook,virtualenv,Python,Matplotlib,Jupyter Notebook,Virtualenv,我不熟悉jupyter笔记本和虚拟环境。我想我遇到了一个非常琐碎的问题 我正试图在Jupyter笔记本中导入matplotlib,导入工作正常。但是,它使用了错误版本的库(在系统范围内也安装了),我不知道如何强制它在virtualenvironment中使用这个版本 在我的虚拟环境中,我想使用matplotlib的最新版本,因此我做到了 pip安装--在我的虚拟环境中升级matplotlib。升级工作正常。 现在,如果我在虚拟环境中执行pip show matplotlib,我会得到: Name
pip安装--在我的虚拟环境中升级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')
你能帮我理解我做错了什么吗?我找到了解决问题的办法。首先,我读到我建议大家使用
conda
或pip
然后我了解到shell环境是在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内核,这解决了我的问题
我希望这个解决方案能帮助其他处于同样情况的人