Rozwiązywanie problemów¶
Ta strona zawiera porady dotyczące często występujących błędów i problemów podczas rozwijania aplikacji w Django.
Problemy z uruchomieniem django-admin
¶
“polecenie nie zostało znalezione: django-admin“¶
django-admin powinno być na twojej ścieżce systemowej, jeśli zainstalowałeś Django przez python setup.py
. Jeśli nie ma go na twojej ścieżce, możesz znaleźć je w site-packages/django/bin
, gdzie site-packages
jest katalogiem wewnątrz twojej instalacji Pythona. Rozważ stworzenie dowiązania symbolicznego do django-admin z jakiegoś miejsca na twojej ścieżce, takiego jak /usr/local/bin
.
Jeśli django-admin
nie działa a django-admin.py
działa, prawdopodobnie używasz wersji Django, która nie jest zgodna z wersją tej dokumentacji. django-admin
zostało wprowadzone w Django 1.7.
Uprawnienia Mac OS X¶
Jeśli używasz Mac OS X, możesz widzieć wiadomość „permission denied” próbując uruchomić django-admin
. To dlatego, że w systemach uniksowych takich jak OS X, plik musi być oznaczony jako „wykonywalny” zanim będzie mógł być uruchamiany jako program. Aby to zrobić otwórz Terminal.app i wejdź (używając komendy cd
) do katalogu, gdzie jest zainstalowane django-admin, następnie uruchom komendę sudo chmod +x django-admin
.
Rozmaite¶
Otrzymuję UnicodeDecodeError
. Co robię źle?¶
Ta klasa błędów występuje, gdy ciąg bitów zawierający sekwencje spoza ASCII jest przekształcany w ciąg znaków Unicode i wskazane kodowanie jest niepoprawne. Wyjście zazwyczaj wygląda w ten sposób:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position ?:
ordinal not in range(128)
Rozwiązanie przede wszystkim zależy od kontekstu, jednakże są dwie pułapki powszechnie powodujące ten błąd:
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 thefrom __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 theu''
prefix.
Powiązane zasoby: