Печать не отображается в ноутбуке ipython - python
Я использую ipython notebook (http://ipython.org/notebook.html), чтобы сделать демонстрацию, и кажется, что функция печати не работает:
![enter image description here]()
Извините, экран печати может быть не таким ясным, а вкратце:
In [1]: 'hello world'
Out [1]: 'hello world'
In [2]: print 'hello world'
И нет вывода на печать из [2]
Кто-нибудь знает, это известная ошибка? И кто-нибудь знает, как это исправить?
Ответы
Ответ 1
У меня была аналогичная проблема с печатью, когда моя первая ячейка кода:
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
Затем я прокомментировал вторую и третью строки следующим образом:
import sys
#reload(sys)
#sys.setdefaultencoding("utf-8")
Reset ядро и перезапустил программу, и теперь мои операторы печати работают правильно.
[edit] Позже я обнаружил, что когда у меня была проблема с печатью, все выходы на печать фактически отправлялись на терминал консоли ipython (в моем ящике Linux) вместо того, чтобы вставлять его в ноутбук.
Ответ 2
Я столкнулся с аналогичной проблемой (reload(sys)
был в пакете, который я импортировал).
Моим обходным решением было то, что в верхней части script я импортировал sys
и сохранил sys.stdout
в отдельной переменной, например. stdout
.
Затем я импортирую все остальные вещи, включая тот, который вызывает reload(sys)
.
Затем, в конце, я установил sys.stdout = stdout
, который перенаправляет вывод обратно в ноутбук IPython
Ответ 3
Принимая то, что @JoostJM сказал, которое работает, и помещаю его в код:
import sys
stdout = sys.stdout
reload(sys)
sys.setdefaultencoding('utf-8')
sys.stdout = stdout
Изменение кодировки по умолчанию направляет вывод на консоль, это возвращает его к ноутбуку jupyter.