Skip to main content

故障排除

本页包含一些关于Django应用程序开发过程中常遇到的错误和问题的建议。

运行 django-admin 的问题

“command not found:django-admin

如果您通过 python setup.py 安装了Django,django-admin 应该在您的系统路径上。如果它不在你的路径,你可以找到它在 site-packages/django/bin,其中 site-packages 是一个目录在你的Python安装。考虑从你路径上的某个地方(例如 /usr/local/bin)对 django-admin 进行符号链接。

如果 django-admin 不工作,但 django-admin.py,则可能使用的Django版本与本文档的版本不匹配。 django-admin 是Django 1.7中的新功能。

Mac OS X权限

如果您使用Mac OS X,当您尝试运行 django-admin 时,您可能会看到消息“权限被拒绝”。这是因为在基于Unix的系统(如OS X)上,文件必须标记为“可执行文件”,然后才能作为程序运行。为此,打开Terminal.app并导航(使用 cd 命令)到安装 django-admin 的目录,然后运行命令 sudo chmod +x django-admin

我得到一个 UnicodeDecodeError。我究竟做错了什么?

当包含非ASCII序列的字节变换为Unicode字符串并且指定的编码不正确时,会发生此类错误。输出一般看起来像这样:

UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position ?:
ordinal not in range(128)

解决方案主要取决于上下文,但是这里有两个常见的陷阱产生这个错误:

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

  • 你创建了原始的bytestrings,这是很容易做的Python 2:

    my_string = 'café'
    

    使用 u'' 前缀或更好,添加 from __future__ import unicode_literals 行在文件的顶部,以便您的代码将兼容Python 3.2不支持 u'' 前缀。

相关资源: