2015-02-21 12 views
22

Mam problem z PyCharm i matplotlib, którego nie mogę poprawić.PyCharm nie otworzy poprawnie działek matplotlib

Kiedy używam PyCharm i ipython jako konsoli, przez którą interpretowane są polecenia, wykresy nie pojawiają się, dopóki nie zapiszę tej figury. Jednak tak się nie dzieje, gdy próbuję wykreślić spoza PyCharm.

Oto proces exmaple że nie w pycharm:

In[2]: import matplotlib.pyplot as plt 
Backend MacOSX is interactive backend. Turning interactive mode on. 

In[3]: plt.plot([1,2,3,4],[1,4,9,16], 'ro') 

Ten będzie otworzyć okno z napisem "Rysunek 1". Jednak nie pojawia się żaden wykres, a myszka przełącza się na SPOD po najechaniu na niego (jestem na Macu). W tym momencie mogę wypróbować

ale nadal nie pojawi się działka. Jednak, gdybym wtedy zrobić:

In[5]: plt.savefig('foo.png') 

nie tylko, fabuła wydaje się postać zapisanej o tej nazwie w oknie rysunku 1. Zauważ, że PyCharm włączył tryb interaktywny i że rozpoznał, że moim zapleczem jest (powinien być?) MacOS.

Używam tego samego procesu za pośrednictwem konsoli Pythona i ipythona w ogólnej sesji terminalowej, a nawet za pośrednictwem emacs, a we wszystkich przypadkach wykres pojawia się po wywołaniu linii plt.plot(). Nie jest wymagane wywołanie plt.show().

Rzeczywiście, mogę nawet użyć terminala przez PyCharm i uzyskać żądany wykres. Jedną z odpowiedzi jest to, że powinienem po prostu zrobić moje spisek przy użyciu tych metod i zignorować PyCharm. Załóżmy jednak, że uważam, że "dzwonki i gwizdki" PyCharm są na tyle atrakcyjne, że naprawdę chciałbym użyć tego jako mojego IDE, ale chcę móc badać fabuły bez konieczności przechodzenia przez problemy (ponieważ nie robię tego w żaden sposób). t chcieć zachować każdy spisek, który próbuję).

Próbowałem również przełączania backend przez plt.switch_backend(). Wypróbowałem wszystkie wymienione opcje, z których wszystkie zawodzą, z powodów głównie związanych z brakiem zainstalowania niektórych pakietów lub z niewłaściwym systemem. Mam nie próbowałem instalować wszystko, aby użyć nowego zaplecza, więc nie wiem, czy inny, poprawnie zainstalowany backend rozwiązałby ten problem. Chętnie spróbuję, oczywiście!

dane systemowe:

MacBook Pro Retina mid-2012, 16GB RAM, Yosemite 10,10

Python 3.4.2

ipython 2.3.1

pycharm Community Edition 4.0.4

Zauważ, że znam i próbował odmiany poprawek z następujących pytań:

Python plots won't open

How to switch backends in matlab/python

PyCharm + Matplotlib?

Matplotlib figure stucked (grey window)

matplotlib does not show my drawings although I call pyplot.show()

EDYTOWANIE Jak zauważono w komentarzu poniżej, wydaje się, że jest to bug, a nie niepowodzenia ustawienia z mojej strony. W związku z tym zmieniam to pytanie, aby zapytać, czy istnieje znane obejście tego problemu.

+3

Powieliłem to zachowanie w Pycharm 4.0 Pro na OS X 10.10. Wydaje się, że jest to problem w konsoli Pythona Pythona, jak wskazano na https://youtrack.jetbrains.com/issue/PY-14547. – Jason

+0

Więc może odpowiedzią jest porzucenie PyCharm. Bleargh. Zmieniliśmy moje pytanie, aby odzwierciedlić ten problem i zapytać, czy istnieje znane obejście tego problemu. –

+0

Dlaczego upuść pycharm, ponieważ Console jest w zasadzie duplikatem funkcjonalności terminalu? Możesz zrobić wszystko w Terminalu, dzięki Konsoli ... po prostu upewnij się, że jesteś we właściwym folderze. – Jason

Odpowiedz

1

Jest to znany problem z pycharm (w tym najnowszej wersji v5) pod OS X, która jest spowodowana przez sposób Python może być zainstalowany na OS X.

większość ludzi zainstalować Python 2 i 3, które również przy użyciu brew zastępuje domyślny interpreter języka Python, który ma być używany z wiersza poleceń. Mimo to domyślny interpreter i pliki wykonywalne pip nie są również zastępowane dla aplikacji GUI.

Jeśli chcesz bardziej konkretną odpowiedź trzeba będzie odpowiednio udokumentować swoje środowisko z:

  • zrobić which -a python z linii poleceń
  • zrobić which -a pip z linii poleceń
  • zrobić print(sys.path) i print(os.env) od wewnątrz pycharm i konsoli, i porównać je.

Prawdopodobnie wykonując to, zdasz sobie sprawę, że załadowana została niewłaściwa wersja modułów.

+0

Używam PyCharm Community Edition 2016.2 w/IPython 5.0 i interpretera Pythona 3.5.2 na Mac OsX 10.11. Sprawdziłem wszystkie ścieżki i wszystkie są zgodne, ale nadal mam ten sam problem. Mogę otworzyć postać w/plt.figure(), ale dostaję tylko SPOD. Wywołanie plt.plot() pokazuje obiekty linii, ale nigdy nie rysuje do okna (czy było tam wcześniej czy nie). Konsola wydaje się powoli powolna. Korzystanie z backendu MacOSX. – jspencer