Кодировка «ASCII» внутри ноутбука Jupyter вызывает BrokenFileSystemWarning

Я начал создавать веб-приложение python3 werkzeug, которое запускается с сервера Linux, но каждый раз, когда я пытаюсь запустить его с ноутбука Jupyter, оно отображает это предупреждение (вызывая внутреннюю ошибку сервера 500< /strong> в браузере )

from sys import getfilesystemencoding
print(getfilesystemencoding())  # Returns 'ascii' inside Jupyter

df = DataFrame(data=......mydata......)
webservice_test = WebService(lambda: globals(), 'df', host='XXX', port=XXX)

webservice_test.start()

/home/python/anaconda3/envs/notebook_env/lib/python3.5/site-packages/werkzeug/filesystem.py:63: BrokenFilesystemWarning: Detected a misconfigured UNIX filesystem: Will use UTF-8 as filesystem encoding instead of 'ascii'
  BrokenFilesystemWarning)

Я попытался отключить предупреждение, но веб-представление все равно прерывается (единственная разница в том, что предупреждение не отображается в Jupyter). Я нашел кодировку с помощью sys.getfilesystemencoding(), которая возвращает 'ascii' при каждом запуске из Jupyter, но возвращает 'utf-8' при запуске на той же машине за пределами Jupyter. .

tl;dl Есть ли способ изменить кодировку по умолчанию в блокноте Jupyter?


person David Černý    schedule 22.04.2017    source источник
comment
Кстати, я пробовал некоторые предложения в оригинальной вики и других потоках stackoverflow, но ничего не помогло.   -  person David Černý    schedule 22.04.2017
comment
Я никогда раньше не пользовался блокнотом Jupyter, у меня есть только одно предложение. Попробуйте объявить кодировку вашего исходного файла, используя это выражение в (первой) строке вашего файла Python: # -*- coding: encoding -*-, где кодировка — это желаемая кодировка.   -  person direprobs    schedule 22.04.2017
comment
Я попробовал # -- coding: utf-8 --, но, похоже, это не влияет на среду.   -  person David Černý    schedule 22.04.2017


Ответы (2)


После поиска в течение нескольких часов я обнаружил, что одна функция, которая должна возвращать форматированный html, вернула None Type, который не может быть закодирован в utf-8, что вызвало ошибку кодирования. Основная проблема заключалась в том, что Werkzeug не указал, в какой строке была ошибка.

person David Černý    schedule 14.05.2017

Я тоже видел ошибку BrokenFilesystemWarning: Detected a misconfigured UNIX filesystem. Покопавшись в коде, я увидел, что эта ошибка безобидна и просто предупреждение в /usr/local/lib/python2.7/dist-packages/werkzeug/filesystem.py:

        warnings.warn(
            'Detected a misconfigured UNIX filesystem: Will use UTF-8 as '
            'filesystem encoding instead of {0!r}'.format(rv),
            BrokenFilesystemWarning)

Так что я бы не стал беспокоиться о предупреждении BrokenFilesystemWarning: Detected a misconfigured UNIX filesystem.

person Vikram Hosakote    schedule 10.03.2018