Mac에서 Django 1.7.3을 사용하고 있습니다.Django 프로젝트 경로의 유니 코드 문자
나는 다음과 같은 경로에 장고 프로젝트를 만들었습니다
/사용자/청/百度 云 同步 盘는/dev/장고/testproject/
(이 프로젝트는 'testproject'라고 함)/Users/cheng/百度云同步盘/Dev/django/testproject/
-> vis
-> templates
-> vis
-> index.html
(내 응용 프로그램 이름이 호출 '마주')
:나는 문제 템플릿 파일을로드하는 데 617,451,515,
내가 올바른 URL을 명중, 내가 가지고 :
UnicodeEncodeError at /vis/
'ascii' codec can't encode characters in position 13-18: ordinal not in range(128)
Python Path: ['/Users/cheng/\xe7\x99\xbe\xe5\xba\xa6\xe4\xba\x91\xe5\x90\x8c\xe6\xad\xa5\xe7\x9b\x98/Dev/django/testproject' ...
Unicode error hint
The string that could not be encoded/decoded was: heng/百度云同步盘/Dev/
당신이 볼 수 있듯이, 경로 '百度 云 同步 盘'아스키가로 인코딩 된 '\ xe7 \ X99 \ XBE \ xe5의 유니 코드 부분 \ xba \ xa6 \ xe4 \ xba \ x91 \ xe5 \ x90 \ x8c \ xe6 \ xad \ xa5 \ xe7 \ x9b \ x98 '.
어쨌든 프로젝트를 비 유니 코드 디렉토리로 이동하는 것 외에이 문제를 해결할 수 있습니까?
감사합니다.
업데이트 : 파이썬 2.7.9를 사용하고 . 전체 스택 추적 :
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/vis/
Django Version: 1.7.3
Python Version: 2.7.9
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'vis')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/cheng/百度云同步盘/Dev/django/testproject/vis/views.py" in index
7. return render(request, 'vis/index.html', context)
File "/usr/local/lib/python2.7/site-packages/django/shortcuts.py" in render
50. return HttpResponse(loader.render_to_string(*args, **kwargs),
File "/usr/local/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
170. t = get_template(template_name, dirs)
File "/usr/local/lib/python2.7/site-packages/django/template/loader.py" in get_template
144. template, origin = find_template(template_name, dirs)
File "/usr/local/lib/python2.7/site-packages/django/template/loader.py" in find_template
126. loader = find_template_loader(loader_name)
File "/usr/local/lib/python2.7/site-packages/django/template/loader.py" in find_template_loader
98. TemplateLoader = import_string(loader)
File "/usr/local/lib/python2.7/site-packages/django/utils/module_loading.py" in import_string
26. module = import_module(module_path)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py" in import_module
37. __import__(name)
File "/usr/local/lib/python2.7/site-packages/django/template/loaders/app_directories.py" in <module>
33. app_template_dirs = calculate_app_template_dirs()
File "/usr/local/lib/python2.7/site-packages/django/template/loaders/app_directories.py" in calculate_app_template_dirs
27. template_dir = template_dir.decode(fs_encoding)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_8.py" in decode
16. return codecs.utf_8_decode(input, errors, True)
Exception Type: UnicodeEncodeError at /vis/
Exception Value: 'ascii' codec can't encode characters in position 13-18: ordinal not in range(128)
그냥 non-ascii없이 프로젝트를 다른 곳으로 옮기면 괜찮습니다. – doniyor
이 특정 문제는 해결할 수 있지만 비 ASCII 폴더에서 웹 사이트를 제공하면 다른 프로그램에서도 문제가 발생할 수 있습니다. 아마도 폴더의 이름을 바꾸거나 프로젝트를 옮기는 것이 더 쉽습니다. –
이 문제의 원인을 찾으려면 사용하는 파이썬 버전을 확인하고 전체 스택 추적을 확인하는 것이 좋습니다. –