Как распечатать из сценария Python 2.7, вызывается из Bash в PyCharm?

Например, если у меня есть скрипт python test.py содержащий

 import time print 'foo' time.sleep(5) print 'bar' time.sleep(5) 

и скрипт оболочки run_test.sh содержащий

 #!/usr/bin/env bash python test.py 

затем запуск последнего (например, с помощью меню «Выполнить») из PyCharm (2016.1) не выводит вывод до завершения всего скрипта (примерно через 10 секунд).

Есть ли способ распечатать выходные данные, как работает мой скрипт?

2 Solutions collect form web for “Как распечатать из сценария Python 2.7, вызывается из Bash в PyCharm?”

Похоже, вам нужно явно очистить буфер:

 import sys print 'foo' sys.stdout.flush() time.sleep(5) print 'bar' sys.stdout.flush() time.sleep(5) 

См. Отключение буферизации вывода для решений Python 2, которые автоматически очищаются после каждой печати.

В вашем случае, поскольку вы управляете файлом bash, который запускает Python, просто добавьте -u или установите PYTHONUNBUFFERED=1 :

 python -u test.py 

или

 PYTHONUNBUFFERED=1 python test.py 

Просто добавьте ответ @MartijnPieters в отношении PyCharm:

В PyCharm задайте конфигурацию запуска для сценария оболочки в разделе « Run -> Edit Configurations» , например:

введите описание изображения здесь

Обратите внимание на PYTHONUNBUFFERED=1 .

Возможно, вам придется сначала добавить конфигурацию запуска Bash в меню «По умолчанию» слева.

  • Как изменить стандартную среду python Anaconda
  • Python: как получить контент-тип URL-адреса?
  • Как установить ограничение по времени на raw_input
  • Произвольный сон в ожидании потока с тайм-аутом
  • Почему раунд (2.49999999999999992) возвращает 3
  • Почему str (float) возвращает больше цифр в Python 3, чем Python 2?
  • Поведение raw_input ()
  • Как установить центральный виджет существующего MainWidnow в Python PyQt4?
  • Python - лучший язык программирования в мире.