安装matplotlib后,在Spyder中导入pytorch会使内核崩溃

时间:2018-10-29 14:46:48

标签: python matplotlib anaconda spyder pytorch

我在Anaconda3中创建了一个环境,并在Linux机器上安装了pytorch和spyder。规格如下:

spyder                    3.3.1  
ipython                   7.0.1  
python                    3.7.0  
pytorch                   0.4.1  
torchvision               0.2.1  

当我打开spyder并导入割炬时,它可以工作。之后,我安装了matplotlib 3.0.1。重新启动spyder并再次导入pytorch会在spyder的ipython窗口上显示一条消息:

An error ocurred while starting the kernel
terminate called after throwing an instance of 'std::runtime_error'
what(): expected ) but found 'ident' here:
aten::_addmv(Tensor self, Tensor mat, Tensor vec, *, Scalar beta=1, Scalar alpha=1) ‑> Tensor
~~~~~~ <‑‑‑ HERE

在bash终端上,我收到消息:

js: Not allowed to load local resource:   
file:///home/user/anaconda3/envs/myenv/lib/python3.7/site-packages/spyder/utils/help/static/css/default.css 

我已经在另一个环境中使用所有这些软件包几个月了(因此它们是较旧的版本),因此新版本中一定有。
如果我在终端上运行ipython或python,则可以导入,因此我认为它与spyder有关。

“解决方案”显而易见:安装旧版本的软件包,但是还有其他更可持续的解决方案吗?

1 个答案:

答案 0 :(得分:2)

我有ipython 7.0.1和matplotlib 2.0.2,并且存在相同的问题,似乎在以下两个命令之后,ipython崩溃了:%matplotlib auto后跟import torch

当两个命令位于单独的块中时,这在spyder中都发生,就像在jupyter笔记本中一样。

对我有用的是: 首先确保将间谍程序后端图形设置为嵌入式: 工具->首选项-> IPython控制台->图形返回到内联。 然后import torch,然后使用%matplotlib auto从内联图转换为外部图。

请注意,这种情况不再发生 ipython 7.2.0和matplotlib 3.0.2