Configuraciones regionales de Ubuntu incorrectas para la aplicación Python

Configuraciones regionales de Ubuntu incorrectas para la aplicación Python

Tengo una pila NGINX -> UWSGI -> Django(python) instalada en una AMI de Ubuntu en Amazon EC2. Me encontré con un problema al acceder a un archivo con caracteres Unicode en el nombre. El resultado exacto de la aplicación Django (Mezzanine) es

Se intentó acceder a un archivo que contiene caracteres Unicode en su ruta, pero de alguna manera la configuración regional actual no admite utf-8. Es posible que deba configurar 'LC_ALL' con un valor correcto, por ejemplo: 'en_US.UTF-8'.

Ahora, cuando ejecuto el localecomando, el resultado es:

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

Para mí, todo se ve bien allí, así que a continuación agregué algo de código para imprimir la configuración regional en la sección de código que genera el error.

El resultado de eso es:

locale.getdefaultlocale() = (None, None)
locale.getpreferredencoding() = 'ANSI_X3.4-1968'
sys.getdefaultencoding() = 'ascii'
sys.getfilesystemencoding() = 'ANSI_X3.4-1968'

Parece que está mal, pero no estoy seguro de cómo solucionarlo. Cuando ejecuto el mismo código en un shell de Python, todo se ve mucho mejor.

locale.getdefaultlocale() = ('en_US', 'UTF-8')
locale.getpreferredencoding() = 'UTF-8'
sys.getdefaultencoding() = 'ascii'
sys.getfilesystemencoding() = 'UTF-8'

Entonces, mi único pensamiento es que en algún lugar de la parte nginx y uwsgi la configuración regional no está configurada correctamente. ¿Hay alguna forma de obligar a cualquiera de ellos a utilizar una determinada ubicación? ¿O podría ser algo del usuario? Es un usuario diferente el que ejecuta nginx y uwsgi del que estaba usando para ejecutar esos comandos en el shell.

información relacionada