トラブルシューティング

このページでは、Django アプリの開発でよく起こるエラーや問題に関するアドバイスを説明してます。

django-admin 実行時の問題

「ommand not found: django-admin

django-admin should be on your system path if you installed Django via python setup.py. If it’s not on your path, you can find it in site-packages/django/bin, where site-packages is a directory within your Python installation. Consider symlinking to django-admin from some place on your path, such as /usr/local/bin.

もし django-admin が動作せず django-admin.py なら動作するという場合、このドキュメントが説明しているバージョンではない Django を使っている可能性があります。 django-admin は Django 1.7 で導入されました。

macOS のパーミッション

If you’re using macOS, you may see the message 「permission denied」 when you try to run django-admin. This is because, on Unix-based systems like macOS, a file must be marked as 「executable」 before it can be run as a program. To do this, open Terminal.app and navigate (using the cd command) to the directory where django-admin is installed, then run the command sudo chmod +x django-admin.

その他

UnicodeDecodeError が発生しました。何を間違えてしまったのでしょうか?

This class of errors happen when a bytestring containing non-ASCII sequences is transformed into a Unicode string and the specified encoding is incorrect. The output generally looks like this:

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

The resolution mostly depends on the context, however here are two common pitfalls producing this error:

  • Your system locale may be a default ASCII locale, like the 「C」 locale on UNIX-like systems (can be checked by the locale command). If it’s the case, please refer to your system documentation to learn how you can change this to a UTF-8 locale.

  • You created raw bytestrings, which is easy to do on Python 2:

    my_string = 'café'
    

    Either use the u'' prefix or even better, add the from __future__ import unicode_literals line at the top of your file so that your code will be compatible with Python 3.2 which doesn’t support the u'' prefix.

関連資料: