Вопрос о «нелинейном» поведении интерпретатора Python в JupyterPython

Программы на Python
Ответить
Anonymous
 Вопрос о «нелинейном» поведении интерпретатора Python в Jupyter

Сообщение Anonymous »

Я запускаю следующий код как удаленно на компьютере с Linux через ssh, так и на том же компьютере с Linux, что и блокнот Jupyter, доступ к которому осуществляется через браузер.

Код: Выделить всё

import cv2
import pdf2image

def minimalFun(pdf_filepath, make_me_suffer = False):
print("Now I start.")
images = pdf2image.convert_from_path(pdf_filepath)
print("Pdf read.")

if make_me_suffer:
cv2.namedWindow('test',0)

print("I finished!")

minimalFun('Test.pdf', make_me_suffer = True)
Меня смущает разница в поведении интерпретатора Pyhton в Jupyter и при использовании в командной строке.
В блокноте Jupyter
При настройке make_me_suffer = False код будет просто распечатан

Код: Выделить всё

Now I start.
Pdf read.
I finished!
это означает, в частности, что функция pdf2image.convert_from_path выполнена успешно. Однако если для make_me_suffer установлено значение True, код будет просто напечатан

Код: Выделить всё

Now I start.
а затем сообщите, что ядро ​​умерло и будет перезагружено. В частности, ядро ​​умерло уже с функцией pdf2image.convert_from_path.
В командной строке
Как и ожидалось, с настройкой make_me_suffer = False код будет просто печатать

Код: Выделить всё

Now I start.
Pdf read.
I finished!
но теперь, когда флаг установлен на make_me_suffer = True, мы получаем

Код: Выделить всё

Now I start.
Pdf read.
: cannot connect to X server
это означает, что здесь функция pdf2image.convert_from_path снова завершилась успешно.
Вопрос:

Интерпретатор Jupyter «заглядывает вперед», чтобы увидеть, появится ли позже команда, требующая системы x-windowing и изменяющая интерпретацию текущих данных на основе информации. Если да, то почему? Это обычное явление? Происходит ли это с функциями, загруженными из других файлов? Что происходит?

Причина, по которой я спрашиваю, заключается в том, что мне потребовалось много времени, чтобы устранить неполадки и определить более сложную функцию. Это меня беспокоит, поскольку я понятия не имею, как избежать этого в будущем, кроме как с этого момента у меня фобия ко всему графическому.

Подробнее здесь: https://stackoverflow.com/questions/633 ... in-jupyter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»