在搜索此问题时,我遇到了一些相反的问题,即,程序包在iPython中打开,但在Jupyter Notebook中却没有。但就我而言,情况恰恰相反。这就是为什么我发布这个问题。
我在环境变量中添加了path\to\anaconda3
和path\to\anaconda3\Lib\site-packages
,但是并不能解决问题。
该如何解决?
如果有帮助,这里有更多信息:
(base) C:\Users\h473>where python
C:\Users\h473\AppData\Local\Continuum\anaconda3\python.exe
(base) C:\Users\h473>where conda
C:\Users\h473\AppData\Local\Continuum\anaconda3\Library\bin\conda.bat
C:\Users\h473\AppData\Local\Continuum\anaconda3\Scripts\conda.exe
(base) C:\Users\h473>where pip
C:\Users\h473\AppData\Local\Continuum\anaconda3\Scripts\pip.exe
P.S。:并非所有软件包都发生这种情况,只有部分软件包会发生,如下面的屏幕快照中的pandas,numpy和matplotlib所示。
答案 0 :(得分:2)
当您使用matplotlib
(并且seaborn
建立在它的顶部)时,它需要使用一个所谓的后端,该后端用于在执行后显示带有图形的实际GUI。例如matplotlib.pyplot.show()
。
当您以串联模式运行带有matplotlib的Jupyter Notebook(我认为是默认值,但不确定)时,将使用Jupyter特定的后端(module://ipykernel.pylab.backend_inline
)。这是有道理的,因为这些图不应出现在单独的窗口中,而应显示在笔记本计算机内部。
但是,当您处于交互式python或iPython会话中时,将Qt5用作
import matplotlib
print(matplotlib.rcParams["backend"]) # this prints the backend that would be loaded when trying anything with pyplot
已显示。由于您收到了错误消息,因此QT5安装似乎已损坏。您可以尝试使用conda命令重新安装它们,但现在您还可以使用其他后端,在尝试加载seaborn之前需要指定该后端:
import matplotlib
matplotlib.use("TkAgg") #use backend TkAgg
import seaborn
您还可以通过使用{p>在matplotlibrc
中创建一个C:\Users\<your name>\.matplotlib\
文件来更改要加载到TkAgg的默认后端
backend : TkAgg
在其中。