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

14

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

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

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

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

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

Благодарю.

Я не уверен, что вы имеете в виду, я просто нажал F5. iRoygbiv
Как вы выполняете сценарий в Sublime Text? На какой ты платформе? noio
Я использую Sublime Text 3 build 3156 в Windows (и версию 3143 в CentOS). Код прекрасно работает на обеих системах. Окна изображения отображаются после нажатияCtrl+B выполнить скрипт. jdhao

Ваш Ответ

5   ответов
11

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

matplotlib.pyplot.show('hold')

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

это должен быть правильный ответ. Поддерживает окно графика без изменения среды разработки
Это идеальный ответ, спасибо!
Это правильный обходной путь!
3

Примечание в возвышенном тексте 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

14

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

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

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

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

Спасибо вам большое! Это сработало для меня после нескольких часов поиска в Google!
14

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

"shell": true

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

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

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

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

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

спасибо @Roald :)

Похожие вопросы