В PyCharm, когда я пытаюсь построить что-то с помощью интерактивной консоли, например:
In[2]: from matplotlib.pyplot import *
In[3]: x = range(5)
In[4]: y = range(5,10)
In[5]: plot(x,y)
WARNING: QApplication was not created in the main() thread.
Out[5]: [<matplotlib.lines.Line2D at 0x7fade916a438>]
In[6]: show()
Он открывает окно и вылетает.Я должен остановить консоль и начать новую.
Это прекрасно работает, когда я запускаю что-то подобное в консоли ipython в моем терминале, ошибка, кажется, происходит только в Pycharm.
С другой стороны, если импортировать matplotlib с import matplotlib.pyplot as plt
, он работает нормально:
In[2]: import matplotlib.pyplot as plt
In[3]: x = range(5)
In[4]: y = range(5,10)
In[5]: plt.plot(x,y)
Out[5]: [<matplotlib.lines.Line2D at 0x7fd3453b72e8>]
In[6]: plt.show()
Но если я сделаю и то, и другое, он тоже вылетит (даже вызывая функцию plot, используя plt.plot
):
In[2]: from matplotlib.pyplot import *
In[3]: import matplotlib.pyplot as plt
In[4]: x = range(5)
In[5]: y = range(5,10)
In[6]: plt.plot(x,y)
WARNING: QApplication was not created in the main() thread.
Out[6]: [<matplotlib.lines.Line2D at 0x7fade916a438>]
In[7]: plt.show()
Кроме того, когда я запускаю все это в одной команде, это работает в первый раз.Но если я попытаюсь нанести график в другой раз, произойдет сбой:
In[2]: from matplotlib.pyplot import *
...: x = range(5)
...: y = range(5,10)
...: plot(x,y)
...: show()
In[3]: plot(x,y)
WARNING: QApplication was not created in the main() thread.
Out[3]: [<matplotlib.lines.Line2D at 0x7fc68a3009e8>]
In[4]: show()
Так что это связано с использованием библиотеки matplotlib при импорте с использованием * и с запуском в интерактивной консоли после первого импорта.,Я знаю, что импорт с использованием подстановочных знаков не рекомендуется, но иногда полезно сделать это для более быстрого тестирования и для того, чтобы быть менее многословным.
Глядя на это предупреждение в Интернете, я нашел только эти
https://github.com/matplotlib/matplotlib/issues/13296 Но мой случай, похоже, не связан с многопроцессорностью.И даже если pycharm делает что-то за кулисами, мне интересно, почему это изменилось, поскольку у меня не было проблем с этим, как месяц назад;
Подавить предупреждение "QApplication былоне создан в потоке main () " и других сообщениях, связанных с C ++, что не в моем случае;
ВНИМАНИЕ: QApplication не был создан в потоке main () -> относится к pycharm, но имеет дополнительную ошибку, отличную от моей
, которая не сильно помогла.Кто-нибудь знает, что происходит и как это решить?
SPECS:
- PyCharm 2019.1.2 (Professional Edition)
- Build # PY-191.7141.48,построено 7 мая 2019 года
- JRE: 11.0.2 + 9-b159.56 amd64
- JVM: 64-битная виртуальная машина OpenJDK от JetBrains sro
- Linux 4.15.0-50-generic
- conda 4.6.14, с Python 3.7.3
- Qt5