2015-05-06 15 views
11
import matplotlib.pyplot as plt 
plt.figure() 
plt.show() 

... świerszcze. Tłumacz wisi i nie mogę tego przerwać.plt.show() wisi na OSX z Anakonda Python

Jest to z Python 2.7.9 i Anaconda 2.2.0 (x86_64) na OSX.

Czy dzieje się tak u kogokolwiek innego? Jak mogę rozwiązać ten problem?

+1

Czy jesteś pewien, że to 'plt.show()', który wisi, a nie import? Ponieważ wystąpił problem z pamięcią podręczną czcionek w systemie OS X, która została rozwiązana w odpowiedzi na [to pytanie] (http://stackoverflow.com/questions/17490444/import-matplotlib-pyplot-hangs). –

+1

Import działa dobrze, i na tyle, na ile mogę to określić, podobnie jak wszystko inne. Powiesić na pewno dzieje się z 'plt.show()' –

+0

Działa dobrze ze mną, zajęło to kilka sekund, zanim pojawiło się okno. Czy korzystasz z trybu interaktywnego lub nieinteraktywnego? A jaki jest twój back-end? Czy uruchamiasz te linie ze skryptu w wierszu poleceń, czy wpisujesz je w interpreterze python? W moim doświadczeniu z OS-X, okna tworzone z linii poleceń często nie wychodzą na pierwszy plan. Czy to możliwe, że okno wykresu zostanie utworzone za innymi oknami lub ukryte w rogu? – titusjan

Odpowiedz

10

Spróbuj uruchomić Python za pomocą pythonw zamiast python.

+0

Nie wiem, dlaczego to zadziałało, ale tak się stało. Dziękuję Ci! –

+1

W systemie OS X, musisz używać 'pythonw' kiedy używasz czegoś, co podpina się do systemu okienkowego OS X (takiego jak matplotlib), ponieważ musi" oszukać "OS X w myśleniu, że jest to framework (używając' pythona pakiet 'app', który znajdziesz w katalogu 'anaconda'). – asmeurer

+1

Inną rzeczą, która powinna działać, jest użycie 'ipython', ponieważ automatycznie używa on python.app. – asmeurer

-1

Dodaj to na początku swojej ipython:

% pylab inline 
0

Jest to najprawdopodobniej problem z ustawieniem zaplecza. Jeśli chcesz, aby działki, aby pokazać się inline (wewnątrz notebooka) importować z tym dodatkiem line: import

import matplotlib.pyplot as plt 
%matplotlib inline 

mieć swój Działki pokazać się interaktywnie inline (wewnątrz notebooka) z tej linii Zamiast:

import matplotlib.pyplot as plt 
%matplotlib notebook 

Aby mieć swoje działki pokazać się na zewnątrz komputera przenośnego (w nowym oknie), import z tej linii zamiast:

import matplotlib.pyplot as plt 
%matplotlib qt 

UWAGA: być konieczne ponowne uruchomienie jądra, aby przełączyć między inline notebooka i zewnętrznym qt, aby uniknąć błędu: Warning: Can not

końcu zmienić na inną GUI toolkit, jeżeli problemy utrzymują się, co następuje może pomóc odkryć, co się dzieje :

import matplotlib 
matplotlib.get_backend() 

przypadku korzystania z któregokolwiek z powyższych opcji, to powinien wypisać jedną z następujących czynności:

  • 'moduł: //ipykernel.pylab.backend_inline'
  • 'nbAgg'
  • 'Qt4Agg'