python - 导入包适用于 jupyter notebook 但不适用于 iPython 和 Anaconda cmd
问题描述
在搜索这个问题时,我遇到了一些相反的问题,即包在 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
PS:并非所有包都会发生这种情况,只有一些包会发生这种情况,如下面的屏幕截图中的 pandas、numpy 和 matplotlib 所示。
解决方案
当您使用时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
您还可以通过在其中创建一个matplotlibrc
文件来更改加载到 TkAgg 的默认后端C:\Users\<your name>\.matplotlib\
backend : TkAgg
在里面。
推荐阅读
- javascript - 类型“CombinedVueInstance”上不存在属性“XXX”
>>' - php - PayPal 自动返回脚本总是被调用两次
- maven-3 - 如何加快 Maven 全新安装?耗时2小时完成
- python - PyMC3 在 Possion 模型创建期间产生错误
- python-3.x - 未定义符号:导入张量流时的_PyThreadState_Current
- thymeleaf - 使用 thymeleaf 从字符串中删除单引号字符
- python - 在python中转换为纪元
- php - 匹配PHP中多行字符串中每行开头的任何水平空白字符
- javascript - 如何将迭代器添加到 cloneNode 中每个元素的每个名称值?
- c# - 我想知道,如何在按钮单击 C# 的 DataGridView 列中按颜色突出显示非数值