Некоторое время назад я переключился с старого EPD Enthoughtht на их новую систему Canopy. По большей части это приятно, но один аспект был особенно досадным.Enthought Canopy не печатает сразу, когда выдается сообщение
Всякий раз, когда я запускаю сценарий python, либо из среды Canopy iPython, либо из командной строки, ни один из моих операторов print
фактически не печатается сразу, когда эта часть скрипта попадает. Вместо этого несколько print
s кажутся выполненными сразу же позже.
В качестве примера ...
import numpy as np
print "About to start long computation..."
a = np.random.randn(1e8)
print "Computation finished."
не печатает первое заявление до послеa
не закончен генерируется, когда оба высказывания печатаются одновременно. (Вы можете узнать, когда вычисление происходит при просмотре монитора ЦП.)
Кто-нибудь знает, что здесь происходит? Если это уместно, я запускаю Canopy 1.0.0.1160, с Python 2.7.3 64bit на компьютере с Windows 7.
В случае, если это не было ясно, я никогда не имел эту проблему со старой EPD. – Blas
Просто, чтобы сузить, где проблема: если вы выполняете 'import sys', а затем вызываете' sys.stdout.flush() 'после инструкции print, она появляется сразу? – Dougal
Это действительно так. Это как-то должно быть проблемой, но есть ли способ заставить флеш после каждого 'print', и почему это не происходит автоматически с Canopy, как это происходит с каждым другим дистрибутивом python? – Blas