django';s setting.py可以';t读取utf-8字符

django';s setting.py可以';t读取utf-8字符,django,django-settings,python-2.x,Django,Django Settings,Python 2.x,我试图给我的MEDIA\u ROOT赋予一个值,它包含一个带有重音符号的单词,但django不接受它。 我尝试使用unicode(utf-8)并对其进行编码,但没有任何积极的结果 我得到的错误是:语法错误:文件中的非ASCII字符'\xc3' 为了使设置接受acent标记(ó,á,é,í,ú),我可以做些什么 SyntaxError:C:\Users\Meccha\Documents\django\project\settings.py文件第160行中的非ASCII字符'\xc3',但未声明编码

我试图给我的
MEDIA\u ROOT
赋予一个值,它包含一个带有重音符号的单词,但django不接受它。 我尝试使用unicode(utf-8)并对其进行编码,但没有任何积极的结果

我得到的错误是:
语法错误:文件中的非ASCII字符'\xc3'
为了使设置接受acent标记(ó,á,é,í,ú),我可以做些什么

SyntaxError:C:\Users\Meccha\Documents\django\project\settings.py文件第160行中的非ASCII字符'\xc3',但未声明编码;看见http://python.org/dev/peps/pep-0263/ 有关详细信息

在第160行中,我有:
MEDIA\u ROOT=os.path.join(u'D:',u'INVESTIGACIÓN.'u p')
在中,
str
unicode
之间有一个目的地
str
ASCII字符串,因此只能包含ASCII字符。另一方面,
unicode
字符串可以包含所有unicode字符

您可以使用
u
前缀定义unicode字符串,这允许编写类似
u'\xf3'
的unicode字符来编写包含
Ã
字符的unicode字符串

但是,如果还想写入unicode字符串,则需要在文件头中指定文件的编码。因此,
settings.py
文件如下所示:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import unicode_literals

import os

# ...
# (some other settings)
# ...

MEDIA_ROOT = os.path.join('D:', u' INVESTIGACIÓN_P')
#/usr/bin/env python
#-*-编码:utf-8-*-
从未来导入unicode文字
导入操作系统
# ...
#(其他一些设置)
# ...
MEDIA_ROOT=os.path.join('D:',u'INVESTIGACIÓN_P')

因此,顶部部分指定了编码,而后者有一个
u
前缀,将字符串标记为
unicode
字符串。

您是否运行Python-2.x?是的,Python 2.7和django 1.11,然后您需要使用
u
作为前缀,因此
u'foo/bar/qux'
而不是
'foo/bar/qux'
。我在file settings.py中得到了相同的错误
SyntaxError:Non-ASCII character'\xc3',但没有声明编码
在顶部添加
-*-编码:utf-8-*-
,我遇到的问题与before@Mecha:请发布完整的回溯。@Mecha:看起来像你忘了声明编码(请参见顶部黑体部分!)我已经添加it@Mecha:如果您从uuu future uuuu导入unicode文字添加一个
,会怎么样?