【发布时间】:2013-07-31 03:23:48
【问题描述】:
有时我的代码运行很快并退出(例如:需要 2 秒),有时它会挂起(例如:最多几分钟)*。这种行为似乎是完全随机的。在到处添加打印语句后,它似乎一直挂在savefig() 上。关于为什么会发生这种情况、如何进一步调查或如何处理的任何想法?
当它停止时,Ctr-x Ctr-c 无效。
当我杀死程序(使用Ctrl-\)时,它通常会说“Python 在使用 _macosx.so 插件时意外退出” --- 我认为这是一个 matplotlib 后端,所以也许这就是问题所在?
谢谢。
*这发生在没有其他程序/任务运行的情况下。晚上看htop 内存和cpu 使用率都没有变高。
我在 OS X 10.8.4 上运行 Python 2.7.2
我的代码示意图:
from matplotlib import pyplot as plt
fig = plt.figure(figsize=fig_size)
fig.subplots_adjust(left=subplot_position[0], right=subplot_position[1])
ax1 = fig.add_subplot(111)
# Do lots of stuff ....
fig_name = GetFigureName(fig_num, figure_output_filename) # some string
fig.savefig(fig_name, dpi=resolution_factor*fig.get_dpi()) # resolution_factor ~ 1.0
【问题讨论】:
-
您是否尝试在远程磁盘上写入文件?或者您是否接近完整磁盘(
df可能存在于 OSX 上,不确定)?尝试写入不同的位置(最好是在不同的磁盘上)。 -
@Bonlenfum 它在我的本地磁盘上(有 400 GB 的可用空间),没有其他任何东西写入它。我应该尝试写入外部 HD 吗?
-
你传递给 savefig() 的参数是什么?至少需要 2..
-
@mattyTpain 刚刚添加到我的帖子中
-
奇怪.. 我经常在 os x 10.7.5 w/python 2.7.3 上使用 savefig,但从来没有在 savefig 上挂过。我在 python 启动的多个实例和 matplotlib 窗口从过去的实例中打开时遇到了挂起问题。我会检查它是否打开了多个窗口,并确保它不是 fig.get_dpi() 或两者的组合,例如尝试设置 dpi=100。
标签: python macos matplotlib freeze