Подтвердить что ты не робот

Графики Matplotlib не отображаются при запуске файла из терминала bash

Графики обычно отображаются при запуске файлов из оболочки ipython или из ноутбука ipython, но они не отображаются, когда я запускаю файл с терминала bash - все остальное отлично работает, когда выполняется с bash терминал.

Пример python script (trial.py):

import matplotlib.pyplot as plt

print 'please, show my graph'

plt.plot([1,2,3], [1,2,3])

plt.show()

Это то, что я получаю (сюжет не отображается):

[~/Desktop]$ python trial.py
please, show my graph
[~/Desktop]$

Если я делаю

import matplotlib
matplotlib.use('TkAgg')

перед импортом pyplot, открывается и закрывается окно, когда я запускаю его с терминала.

Я пробовал разные способы импорта модулей без успеха:

import matplotlib.pyplot as plt
import matplotlib.pylab as plt
from matplotlib import pyplot as plt
from matplotlib import pylab as plt

У меня есть функция plt.show() в моем файле.

Знаете ли вы, как я могу это исправить?

Некоторая информация о версиях и установке:

Я нахожусь на Mac OSX 10.11.3.

In [61]: print matplotlib.__file__
/usr/local/lib/python2.7/site-packages/matplotlib/__init__.pyc

In [62]: print matplotlib.__version__
1.4.2

In [64]: print sys.version
2.7.9 (default, Apr  7 2015, 07:58:25)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]

In [65]: matplotlib.get_backend()
Out[65]: u'MacOSX'
4b9b3361

Ответ 1

Вам нужно добавить matplotlib.pyplot.show() в свой код, чтобы показывать графики в неинтерактивном режиме. См. Документы в http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.show

РЕДАКТИРОВАТЬ:

После дополнительной информации от OP блокировка должна была быть включена явно с помощью plt.show(block=True).