Django manage.py sunserver 编码问题记录和解决方法!
2017-08-05 17:27
597 查看
今天第一次 使用Django碰到了两个大坑,耗了我一下的时间才解决掉,记录一下,希望能帮到别的同学。
在执行 python manage.py runserver 这个命令的时候报错,具体的错误如下:
D:\workspace\jimmy>python manage.py runserver
Traceback (most recent call last):
File "manage.py", line 24, in <module>
execute_from_command_line(sys.argv)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
363, in execute_from_command_line
utility.execute()
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
355, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 283,
in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.
py", line 63, in execute
super(Command, self).execute(*args, **options)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 330,
in execute
output = self.handle(*args, **options)
File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.
py", line 102, in handle
self.run(**options)
File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.
py", line 111, in run
autoreload.main(self.inner_run, None, options)
File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 341, in
main
reloader(wrapped_main_func, args, kwargs)
File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 312, in
python_reloader
exit_code = restart_with_reloader()
File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 294, in
restart_with_reloader
str_value = force_bytes(new_environ[key], encoding=encoding)
File "C:\Python27\lib\site-packages\django\utils\encoding.py", line 124, in fo
rce_bytes
return s.decode('utf-8', errors).encode(encoding, errors)
File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xca in position 367: invalid
continuation byte
废话补多少,解决的办法是:
修改C:\Python27\lib\site-packages\django\utils\autoreload.py 在这个文件的第294行,原本这一行的代码是:
str_value = force_bytes(new_environ[key], encoding=encoding)
将其修改为:
str_value = force_bytes(new_environ[key], encoding=‘utf-8’)
保存这个文件。然后重新在cmd的界面里面执行python manage.py runserver就可以执行成功了。
【总结】:
这个是由于系统编码的问题,与你个人设置无任何关系。
只要跟编程相关的代码一律不要跟中文粘上关系,这是衷心的建议。
出错了不可怕,可怕的是出错之后不能用正确的态度去解决问题。要从本质上解决问题,不要选择逃避(刚刚还想要不要重新把django装一遍)。解决问题的时候一定要沿着对的方向前进,当从别人的经验中得到不到快速解决问题的方法时候,要自己开创一条解决问题的道路,并把这条路公布出来,走自己的路也要让别人有路可走!
D:\workspace\jimmy>python manage.py runserver
Traceback (most recent call last):
File "manage.py", line 24, in <module>
execute_from_command_line(sys.argv)
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
363, in execute_from_command_line
utility.execute()
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
355, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 283,
in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.
py", line 63, in execute
super(Command, self).execute(*args, **options)
File "C:\Python27\lib\site-packages\django\core\management\base.py", line 330,
in execute
output = self.handle(*args, **options)
File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.
py", line 102, in handle
self.run(**options)
File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.
py", line 111, in run
autoreload.main(self.inner_run, None, options)
File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 341, in
main
reloader(wrapped_main_func, args, kwargs)
File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 312, in
python_reloader
exit_code = restart_with_reloader()
File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 294, in
restart_with_reloader
str_value = force_bytes(new_environ[key], encoding=encoding)
File "C:\Python27\lib\site-packages\django\utils\encoding.py", line 124, in fo
rce_bytes
return s.decode('utf-8', errors).encode(encoding, errors)
File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xca in position 367: invalid
continuation byte
废话补多少,解决的办法是:
修改C:\Python27\lib\site-packages\django\utils\autoreload.py 在这个文件的第294行,原本这一行的代码是:
str_value = force_bytes(new_environ[key], encoding=encoding)
将其修改为:
str_value = force_bytes(new_environ[key], encoding=‘utf-8’)
保存这个文件。然后重新在cmd的界面里面执行python manage.py runserver就可以执行成功了。
【总结】:
这个是由于系统编码的问题,与你个人设置无任何关系。
只要跟编程相关的代码一律不要跟中文粘上关系,这是衷心的建议。
出错了不可怕,可怕的是出错之后不能用正确的态度去解决问题。要从本质上解决问题,不要选择逃避(刚刚还想要不要重新把django装一遍)。解决问题的时候一定要沿着对的方向前进,当从别人的经验中得到不到快速解决问题的方法时候,要自己开创一条解决问题的道路,并把这条路公布出来,走自己的路也要让别人有路可走!
相关文章推荐
- Django执行python manage.py syncdb时,出行No module named MySQLdb问题解决方法
- 运行django的manage.py runserver 8000时提示errno 10013的解决方法
- 学习django框架,记录所遇到的问题以及解决方法
- python manage.py syncdb Unknown command: 'syncdb'问题解决方法
- 运行python manage.py syncdb时出现“cannot connect to MySQL server on 'localhost'”的解决方法
- python django学习-问题记录及解决方法
- 玩django时运行python manage.py runserver时遇到问题
- Django Server启动出现SessionAuthenticationMiddleware问题解决方法
- 记录使用python时遇到的中文 编码问题与解决方法
- Django运行html模板时编码问题的解决方法
- django 解决manage.py migrate无效的问题
- 问题记录:编码问题解决方法之encodeURI
- MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结
- ocs(office communications server)通讯簿无法同步的问题集锦及解决方法
- 解决IE不能主动识别UTF-8编码的问题的方法
- 利用Ecipse生成Javadoc乱码(编码问题)终极解决方法
- 解决 django 查数据库时中文编码问题
- "ASP.NET Development Server无法开始侦听端口:XXXX"问题的解决方法
- ocs(office communications server)通讯簿无法同步的问题集锦及解决方法
- Report Server 报表服务器安装sp2补丁后,报表服务器不能用的问题解决方法