导入包在 jupyter notebook 中有效,但在 iPython 和 Anaconda cmd 中无效

Import package works in jupyter notebook but not in iPython and Anaconda cmd

在搜索这个问题时,我遇到了一些相反的问题,即包在 iPython 中打开,但在 Jupyter Notebook 中没有打开。但就我而言,情况恰恰相反。这就是我发布这个问题的原因。

我在环境变量中添加了path\to\anaconda3path\to\anaconda3\Lib\site-packages,但没有解决问题

我可以在 site-packages 文件夹中看到这些包:

但是我无法导入 iPython 中的一些包:

或在 anaconda cmd 中使用 python:

但它在 Jupyter Notebook 中运行良好:

do/can 我该怎么做才能解决这个问题?

如果有帮助,请查看更多信息:

(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 所示下面。

当您使用 matplotlib(并且 seaborn 建立在它之上)时,它需要使用一个所谓的后端,用于显示带有绘图的实际 GUI 一次你执行例如 matplotlib.pyplot.show().

当您 运行 内联模式下带有 matplotlib 的 Jupyter Notebook(我认为是默认设置,但不确定)时,将使用特定于 Jupyter 的后端 (module://ipykernel.pylab.backend_inline)。这是有道理的,因为这些图不应该出现在单独的 windows 中,而是应该显示在笔记本内部。

当您处于交互式 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

您还可以通过在 C:\Users\<your name>\.matplotlib\ 中使用

创建 matplotlibrc 文件来更改加载到 TkAgg 的默认后端
backend      : TkAgg

在里面。