Журнал Jupyter Notebook ValueError: Операция ввода-вывода для закрытого файла - PullRequest
1 голос
/ 07 мая 2019

Я пытаюсь добавить запись в некоторый код Jupyter Notebook (работает под управлением Pyspark3).

Копаемся по SO Я нашел несколько ответов, в которых говорилось, что basicConfig() не работает, потому что ноутбук начинает свой собственный сеанс регистрации. Некоторые обходные ответы указывали на запуск reload(logging), чтобы обойти это. Имея это в виду, я настраиваю свою регистрацию следующим образом:

from importlib import reload  # Not needed in Python 2
import logging
reload(logging)
logging.basicConfig(
    format="%(asctime)s - %(levelname)s - %(name)s - %(message)s",
    level=logging.INFO,
    datefmt="%y/%m/%d %H:%M:%S",
)
logger = logging.getLogger(__name__)

Затем я запускаю оператор информации: logger.info("this is a test") и получаю ошибку значения ввода / вывода? Я не уверен, что это значит.

--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib64/python3.6/logging/__init__.py", line 994, in emit
    stream.write(msg)
  File "/tmp/2950371398694308674", line 534, in write
    super(UnicodeDecodingStringIO, self).write(s)
ValueError: I/O operation on closed file
Call stack:
  File "/tmp/2950371398694308674", line 700, in <module>
    sys.exit(main())
  File "/tmp/2950371398694308674", line 672, in main
    response = handler(content)
  File "/tmp/2950371398694308674", line 318, in execute_request
    result = node.execute()
  File "/tmp/2950371398694308674", line 229, in execute
    exec(code, global_dict)
  File "<stdin>", line 1, in <module>
Message: 'this is a test'
Arguments: ()

Это как-то связано с регистрацией, взаимодействующей с stdout / stderr, но я не уверен, как ее решить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...