Plt.show() зависает на OSX с помощью Anaconda Python

import matplotlib.pyplot as plt
plt.figure()
plt.show()

... сверчки. Переводчик висит, и я не могу его прерывать.

Это с Python 2.7.9 и Anaconda 2.2.0 (x86_64) на OSX.

Это случается для кого-то еще? Как я могу решить эту проблему?

Ответ 1

Попробуйте запустить Python, используя pythonw вместо python.

Ответ 2

Это, скорее всего, проблема с настройками вашего бэкэнд. Если вы хотите, чтобы ваши сюжеты отображали встроенный (внутри вашего ноутбука) импорт с помощью этой добавленной строки:

import matplotlib.pyplot as plt
%matplotlib inline

Чтобы ваши сюжеты отображали интерактивно встроенный (внутри вашего ноутбука) импорт с этой строкой, вместо этого:

import matplotlib.pyplot as plt
%matplotlib notebook

Чтобы ваши сюжеты отображались за пределами вашего ноутбука (в новом окне), вместо этого импортируйте эту строку:

import matplotlib.pyplot as plt
%matplotlib qt

ПРИМЕЧАНИЕ. Вам необходимо перезапустить ядро ​​для переключения между встроенным ноутбуком и внешним qt, чтобы избежать ошибки: Предупреждение: нельзя изменить на другой набор инструментов GUI

Наконец, если проблемы сохраняются, следующее может помочь выявить, что происходит:

import matplotlib
matplotlib.get_backend()

Если вы используете любой из вышеперечисленных вариантов, он должен вывести одно из следующих значений:

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

Ответ 3

Измените импорт matplotlib.pyplot на:

import matplotlib
matplotlib.use('TkAgg') #----> Specify the backend
import matplotlib.pyplot as plt

Ответ 4

Добавьте это в начало вашего iPython:

% pylab inline