Сюжеты Matplotlib не отображаются в сублиметексте

Я недавно начал использовать Sublimetext 2, однако сегодня я заметил, чтоplt.show() Функция не работает при запуске в пределах сублиметекста.

Если, например, я создаю следующий скрипт:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show() 

Выполнение этого с IDLE генерирует график, однако при использовании сублиметекста выходные данные не генерируются. Он просто «думает» пока я не закончу процесс python.exe, после которого выводится [Завершено].

Я неправильно понял, как использовать сублиметекст?

Благодарю.

 noio31 мая 2012 г., 13:06
Как вы выполняете сценарий в Sublime Text? На какой ты платформе?
 iRoygbiv31 мая 2012 г., 13:45
Я не уверен, что вы имеете в виду, я просто нажал F5.
 jdhao18 дек. 2017 г., 14:21
Я использую Sublime Text 3 build 3156 в Windows (и версию 3143 в CentOS). Код прекрасно работает на обеих системах. Окна изображения отображаются после нажатияCtrl+B выполнить скрипт.

Ответы на вопрос(5)

Решение Вопроса

Я предполагаю, что Sublime Text 2 запускает ваш код в своей собственной среде, и только перехватывает и отображает вывод консоли. Та же проблема существует при использовании графического интерфейса пользователя, такого как wxPython.

Другой способ - открыть командную строку и запустить ее вручную (python file.py).

EDIT: Вот в нем говорится, что "под Windows графические интерфейсы подавлены".

EDIT 2: Вот это перечисляет способ исправить это, прямо в нижней части страницы.

 16 июл. 2015 г., 22:24
Спасибо вам большое! Это сработало для меня после нескольких часов поиска в Google!

Примечание в возвышенном тексте 3 (с установленным пакетом anaconda)

Вам нужно добавить пользовательскую систему сборки, как сказано в тета:

сначала добавьте папку с именем python в\path\to\Sublime Text Build XXXX\Data\Packages

затем поместите файл с именемpython.sublime-build в эту папку.

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "shell": true
}

и не забудьте добавитьplt.show() как сказал Роальд.

plt.imshow(image)
plt.show()

Демо-версия:

enter image description here

Я опробовал тета-ответ, как предложено выше. Работает нормально. Если консоль открывается и закрывается мгновенно, как при запуске файлов python непосредственно из проводника, просто добавьте следующую строку в конце:

matplotlib.pyplot.show('hold')

Это мой первый ответ здесь. Извините, если я не придерживался формата ответа.

 06 нояб. 2018 г., 18:16
Это правильный обходной путь!
 15 июн. 2018 г., 13:02
Это идеальный ответ, спасибо!
 26 июл. 2016 г., 15:57
это должен быть правильный ответ. Поддерживает окно графика без изменения среды разработки

Более подходящий способ - просто добавить одну строку в системный файл сборки Python по умолчанию:

"shell": true

Или сделайте дополнительную систему сборки Python с:

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "shell": true
}
 19 сент. 2018 г., 17:59
Это работает для меня, но в Windows я получаю следующее сообщение: CMD.EXE был запущен с указанным выше путем в качестве текущего каталога. UNC-пути не поддерживаются. По умолчанию используется каталог Windows. Проблема сейчас время от времени сборки вылетает редактор
 19 сент. 2018 г., 19:22
Для окон файловая переменная должна быть заключена в квадратные скобки как: «cmd»: [«python», «-u», «$ {file}», таким образом вы избегаете получения предупреждения пути UNC.

У меня была похожая проблема под Ubuntu. Я пытался построитьpandas DataFrame как это:

df = pandas.DataFrame([*range(5)])
df.plot()

Но сюжет не показал. Оказывается, вам нужно сделатьplt.show(), как обсуждалосьВот.

 09 нояб. 2017 г., 14:01
спасибо @Roald :)

Ваш ответ на вопрос