Troubleshooting

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

Problems running 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 permissions

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

Miscellaneous

我收到UnicodeDecodeErrorWhat am I doing wrong?

当包含非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''前缀或更好,添加 __ future __ import unicode_literals行,以便您的代码与不支持u''前缀的Python 3.2兼容。

相关资源: