Matplotlib делает сбои веб-просмотра - PullRequest
1 голос
/ 15 мая 2019

Я создаю настольное приложение с пакетом python и pywebview. Всякий раз, когда я пытаюсь показать некоторые графики, оно работает только для 1 или 2 запусков, а затем приложение вылетает.

Я пытался использовать разные бэкэнды для matplotlib, но безуспешно. Это код:

import numpy as np
import matplotlib.pyplot as plt
import webview

class Api:
    def plot(self,y):
        x=np.linspace(1,100,100)
        z=np.cos(x)
        plt.figure(1)
        plt.plot(x)
        plt.figure(2)
        plt.plot(x,z)
        plt.show()

api = Api()
webview.create_window('API example', width=1200, height=600, resizable=False, js_api=api,url="file:///C:/Users/aly_h/Downloads/FullWidthTabs/index.html")`
<html>
<button class="myButton" onClick="greet()">Run</button><br/>
<script>
    function greet() {
        var y = 6
        pywebview.api.plot(y)
    }
</script>
</html>

ошибка, которую я получил,

RuntimeError: main thread is not in main loop
Exception ignored in: <function Image.__del__ at 0x000001F4EA12F8C8>
Traceback (most recent call last):
  File "C:\Users\aly_h\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 3507, in __del__
    self.tk.call('image', 'delete', self.name)
RuntimeError: main thread is not in main loop
Tcl_AsyncDelete: async handler deleted by the wrong thread
...