1
としてプロットを保存するとき、長いCに変換するには大きすぎるint型私も、私はplt.savefigを使用してプロットを保存しようとすると、私はこのエラーを取得ラズベリーPI 1.上のpythonを使用してプログラミングをしていますプロットの内容が単一の値である場合。私はTkinterをメインの執行主体で実行していますが、別の.pyファイルで関数を呼び出すことによって計算を行う別個のスレッドがあり、plt.savefigはこれらの関数の1つです。 plt.savefigは、2番目の.pyファイルを直接呼び出すときにうまく動作するので、これは私のスレッディングと関係がありますか?スレッドをご覧くださいPythonの:OverflowErrorを:Pythonは画像
import threading
import time
import matplotlib.pyplot as plt
def saveplot():
plt.plot(3)
plt.savefig("plot.jpg")
time.sleep(10)
threads = []
t = threading.Thread(target=saveplot)
threads.append(t)
t.start()
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "Slett.py", line 6, in saveplot
plt.savefig("plot.jpg")
File "/usr/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 578, in savefig
draw() # need this if 'transparent=True' to reset colors
File "/usr/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 571, in draw
get_current_fig_manager().canvas.draw()
File "/usr/lib/python2.7/dist-packages/matplotlib/backends/backend_tkagg.py", line 350, in draw
tkagg.blit(self._tkphoto, self.renderer._renderer, colormode=2)
File "/usr/lib/python2.7/dist-packages/matplotlib/backends/tkagg.py", line 21, in blit
_tkagg.tkinit(tk.interpaddr(), 1)
OverflowError: Python int too large to convert to C long
にあなたがしようとしている、単一の数のバグである私の知識は、私はいくつかの助けを本当に感謝:(
編集を、一種の限られていますあなたの数値が負で、 - (2^63)より小さい。 – Kevin
@ケビン私は '2^63 - 1と思っています。 63-1'は64ビットシステムのみであり、プラットフォームに関係なく最大値は 'sys.maxsize'だと私は信じている。 –
@ TadhgMcDonald-Jense n:これは 'ssize_t'のためのものです。通常は' long'と同じではありません(Windowsは良い反例です。それは32ビットの長さと64ビットのポインタを持っています)。 – Kevin