Troubleshooting

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

django-admin 的问题

“命令未找到:django-admin

如果您通过python setup.py安装了Django,则django-admin 如果不在您的路径上,可以在site-packages中找到它,其中site-packages/django/bin是Python安装中的目录。 考虑从路径上某处(例如/usr/local/bin)符合连接到django-admin

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

macOS权限

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

Miscellaneous

我收到UnicodeDecodeError What 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兼容。

相关资源: