Ubuntu语言环境对Python应用程序不正确

我在Amazon EC2的Ubuntu AMI上安装了NGINX – > UWSGI – > Django(python)堆栈。 访问名称中包含unicode字符的文件时遇到问题。 Django App(Mezzanine)的确切输出是

尝试访问包含path中的Unicode字符的文件,但不知何故当前的语言环境不支持utf-8。 您可能需要将“LC_ALL”设置为正确的值,例如:'en_US.UTF-8'。

现在,当我运行locale命令输出是:

 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 

对我来说,一切都看起来不错,所以接下来我添加了一些代码来打印出生成错误的代码段中的语言环境设置。

其结果是:

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

所以这看起来不正确,但我不知道如何解决它。 当我在python shell中运行相同的代码时,一切看起来好多了。

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

所以我唯一的想法是在nginxuwsgi部分的locale没有正确设置。 无论如何强迫这两个人使用某个地区? 或者可能是用户的东西? 运行nginx和uwsgi的用户不同于我在shell中运行这些命令的用户。