您的位置:首页 > 编程语言 > Go语言

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装一遍)。解决问题的时候一定要沿着对的方向前进,当从别人的经验中得到不到快速解决问题的方法时候,要自己开创一条解决问题的道路,并把这条路公布出来,走自己的路也要让别人有路可走!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息