仅在Pycharm" Python控制台"在ipdb调试会话期间

时间:2017-03-07 04:02:43

标签: python matplotlib ipython pycharm

我正在使用Windows 7 64位和PyCharm 2016.3.2,构建#PY-163.10154.50,建于2016年12月28日。

我有一个非常简单的脚本Test.py,如下所示:

import matplotlib.pyplot as plt
import ipdb

plt.ion()

x = [1, 2, 3]
plt.figure()
plt.plot(x)
plt.show()

ipdb.set_trace()

当我使用命令python Test.py从Windows终端执行脚本时,脚本运行正常:我被带到ipdb控制台,在那里我可以创建并绘制新变量,同时与生成的绘图进行交互。另外,如果我首先在Windows终端中打开iPython并调用ipython然后在iPython控制台中调用exec(compile(open('Test.py', "rb").read(), 'Test3.py', 'exec'))来运行脚本,它仍然运行良好。最后,当我从PyCharm中的Terminal接口以这两种方式执行脚本时,它仍然运行正常。

当我想从PyCharm中的Python Console界面运行脚本时,我遇到了问题。控制台将打开,并显示一条消息

  

" E:\ Program Files \ Anaconda3 \ python.exe" " E:\ Program Files   (x86)\ JetBrains \ PyCharm 2016.3.2 \ helpers \ pydev \ pydevconsole.py"

并告诉我它正在运行带有Python 3.5.2的IPython 5.1.0 Anaconda 4.2.0作为翻译。当我在此控制台中使用上面相同的exec命令时,代码会在断点处运行,但图形不会渲染,并且图形窗口会冻结。请看下图:

enter image description here

如果我使用plt.pause(10),图形呈现但在10秒后再次冻结。在这10秒钟内,我可以与图形进行交互,但是我无法使用代码创建或探测任何变量(我在PyCharm弹出窗口提示前一个命令仍在运行)。此外,当plt.pause完成时,我会收到警告:

  

E:\ Program Files \ Anaconda3 \ lib \ site-packages \ matplotlib \ backend_bases.py:2437:MatplotlibDeprecationWarning:使用默认事件循环,直到实现特定于此GUI的功能     warnings.warn(str,mplDeprecation)

在任何时候,如果我尝试从ipdb控制台创建新数据,它们也不会渲染,窗口将保持冻结状态,直到我执行plt.pause(即plt.pause必须在任何数字后执行已创建或修改。)

如何解决此问题,以便在与绘图和创建/修改变量交互时,可以利用PyCharm中Python控制台界面的便利性?

0 个答案:

没有答案