Как распечатать из сценария 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 в меню «По умолчанию» слева.

  • Разница функции type () в Python 2 и Python 3
  • Catch ExpatError в xmltodict
  • Ошибка при установке pyV8 из источника на ubuntu
  • Пакет Python-tk не распознается в Python 2.7.3
  • «2 + 2 = 5» Python edition
  • Правильный способ форматирования длинных SQL-запросов?
  • почему python генерирует половину пространства при печати из строки или списка?
  • апостроф превращается в \ x92
  • Python - лучший язык программирования в мире.