PyCharm远程解释器plt.show()连接重置错误求助
问题
在PyCharm中使用远程解释器运行绘制热力图的代码,昨日运行正常,今日未修改代码或conda环境的情况下突然无法运行。
运行的核心代码片段:
fig, (ax1, ax2) = plt.subplots(1, 2) ax1.imshow(img.permute(1,2,0)) ax2.imshow(heatmap) plt.title(f'event: {event}') plt.show()
执行到plt.show()时崩溃,抛出的异常信息:
Traceback (most recent call last): File "/home/<user>/.pycharm_helpers/pycharm_display/datalore/display/display_.py", line 60, in try_empty_proxy urllib_request.urlopen(url, buffer) File "/home/<user>/miniconda3/envs/catenv/lib/python3.8/urllib/request.py", line 222, in urlopen return opener.open(url, data, timeout) File "/home/<user>/miniconda3/envs/catenv/lib/python3.8/urllib/request.py", line 525, in open response = self._open(req, data) File "/home/<user>/miniconda3/envs/catenv/lib/python3.8/urllib/request.py", line 542, in _open result = self._call_chain(self.handle_open, protocol, protocol + File "/home/<user>/miniconda3/envs/catenv/lib/python3.8/urllib/request.py", line 502, in _call_chain result = func(*args) File "/home/<user>/miniconda3/envs/catenv/lib/python3.8/urllib/request.py", line 1383, in http_open return self.do_open(http.client.HTTPConnection, req) File "/home/<user>/miniconda3/envs/catenv/lib/python3.8/urllib/request.py", line 1357, in do_open raise URLError(err) urllib.error.URLError: <urlopen error [Errno 104] Connection reset by peer>
该错误看似和网络请求相关,但代码中未编写任何网络逻辑,且此前也曾出现过类似问题,约两周后自行恢复。
可能的解决方法
- 重启PyCharm与远程连接:断开并重新建立PyCharm和远程服务器的连接,同时重启本地PyCharm客户端,临时连接故障常能通过重启解决。
- 修改Matplotlib后端:在代码开头添加以下代码,强制使用非交互式后端绕开PyCharm的远程显示代理:
若需要查看图像,可将图像保存到远程服务器后再下载到本地:import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as pltplt.savefig('heatmap_output.png') - 清理PyCharm远程缓存:删除远程服务器上的
~/.pycharm_helpers目录,重新运行代码后PyCharm会自动生成新的辅助文件,修复损坏的显示代理组件。 - 检查网络与端口:确认本地机器和远程服务器之间的网络连接稳定,无防火墙或路由规则阻断PyCharm用于图像显示的内部端口。
- 更新软件版本:将PyCharm升级至最新版本,同时在远程conda环境中执行
conda update matplotlib更新Matplotlib,避免版本兼容问题引发的显示故障。
内容的提问来源于stack exchange,提问作者Nadav Nissim
相关产品推荐
相关产品推荐

