Просто основываюсь на ответах из этой цепочки и других ...
У меня была такая же проблема с genericpath.py, выдающим UnicodeEncodeError при попытке загрузить имя файла без символов ASCII.
Я использовал nginx, uwsgi и django с python 2.7.
Все работало нормально локально, но не на сервере
Вот шаги, которые я сделал 1. добавил в / etc / nginx /nginx.conf (проблема не устранена)
http {
charset utf-8;
}
Я добавил эту строку в etc / default / locale (не устранил проблему)
LANGUAGE="en_US.UTF-8"
Я следовал приведенным здесь инструкциямпод заголовком «Успех» https://code.djangoproject.com/wiki/ExpectedTestFailures (не устранил проблему)
aptitude install language-pack-en-base
Нашел по этому билету https://code.djangoproject.com/ticket/17816, в котором предлагалось проверить представление насервер к тому, что происходило с информацией о локали
На ваш взгляд
import locale
locales = "Current locale: %s %s -- Default locale: %s %s" % (locale.getlocale() + locale.getdefaultlocale())
В вашем шаблоне
{{ locales }}
Для меня вопросбыло то, что у меня не было локали и локали по умолчанию на моем сервере Ubuntu (хотя они были у меня на локальной машине разработки OSX), тогда файлы с именами / путями, отличными от ASCII, не будут корректно загружаться с python, вызывающим UnicodeEncodeError, но только нарабочий сервер.
Решение
Я добавил это как в конфигурационный файл uwsgi моего сайта, так и в мой админ сайта, например / etc / uwsgi-emperor / vassals / my-site-файл config-ini
env = LANG=en_US.utf8