【问题标题】:Cannot run Django development server (UnicodeDecodeError)无法运行 Django 开发服务器 (UnicodeDecodeError)
【发布时间】:2015-03-27 12:05:03
【问题描述】:

当我尝试运行 django 开发服务器(使用命令行或 pycharm 运行功能)时,我收到以下错误回溯:

Performing system checks...

System check identified no issues (0 silenced).
Unhandled exception in thread started by <function wrapper at 0x037EF170>
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 222, in wrapper
    fn(*args, **kwargs)
  File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 107, in inner_run
    self.check_migrations()
  File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 159, in check_migrations
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
  File "C:\Python27\lib\site-packages\django\db\migrations\executor.py", line 17, in __init__
    self.loader = MigrationLoader(self.connection)
  File "C:\Python27\lib\site-packages\django\db\migrations\loader.py", line 48, in __init__
    self.build_graph()
  File "C:\Python27\lib\site-packages\django\db\migrations\loader.py", line 173, in build_graph
    self.load_disk()
  File "C:\Python27\lib\site-packages\django\db\migrations\loader.py", line 95, in load_disk
    if name.endswith(".py"):
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb9 in position 27: ordinal not in range(128)

我该如何解决这个问题?

编辑: 当我删除所有迁移并重新创建它们时,我已经检查了它是如何工作的。当我这样做时,服务器正在启动而没有任何问题。但是,当我切换到另一台机器并尝试启动服务器时(我正在通过保管箱同步文件)错误消息再次出现。

【问题讨论】:

  • 这可能是因为你使用Python2.7 和一个不兼容的 Django 版本——或者我记得在文档中读过类似的东西。或者可能是某些文件或路径包含异常字符
  • 确实,我的迁移包含特殊字符,例如:“Okres wa\u017cno\u015bci pakietu”,但我不确定这是问题的原因
  • 处理这个超出了我对 Django 的了解,但您可以查看文档以了解如何处理或更简单地替换这些特殊字符。
  • 我使用 Dropbox,但我遇到了同样的问题。实际上,在迁移目录中有一些 *.pyc 文件与 cmets 有关同步期间的冲突。由于这些文件名中的西里尔符号,我一直收到此错误。也许它会对某些人有所帮助。

标签: python django unicode python-unicode


【解决方案1】:

我在使用 Django 1.10 运行 python managy.py runserver 时遇到了类似的问题。

我的系统是:win10.
Python 版本:2.7.13(在 Anacoda 中)

错误回溯如下: enter image description here

我从 Django 项目疑难解答中得到了答案

您的系统区域设置可能是默认的 ASCII 区域设置,例如类 UNIX 系统上的“C”区域设置(可以通过 locale 命令检查)。如果是这种情况,请参阅您的系统文档以了解如何将其更改为 UTF-8 语言环境。

所以在 Windows 10 中,我将系统区域设置从中文更改为英文,请参阅这个问题 --- How to change system locale in Windows 10 - The Language for - Microsoft Community

然后我重启了电脑,再次运行python managy.py runserver就OK了。

愿它对某人有所帮助。

【讨论】:

猜你喜欢
  • 2015-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多