=============== Troubleshooting =============== This page contains some advice about errors and problems commonly encountered during the development of Django applications. .. _troubleshooting-django-admin-py: Problems running django-admin.py ================================ "command not found: django-admin.py" ------------------------------------ :doc:`django-admin.py ` 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 :doc:`django-admin.py ` from some place on your path, such as :file:`/usr/local/bin`. Script name may differ in distribution packages ----------------------------------------------- If you installed Django using a Linux distribution's package manager (e.g. ``apt-get`` or ``yum``) ``django-admin.py`` may have been renamed to ``django-admin``; use that instead. Mac OS X permissions -------------------- If you're using Mac OS X, you may see the message "permission denied" when you try to run ``django-admin.py``. This is because, on Unix-based systems like OS X, 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 :doc:`django-admin.py ` is installed, then run the command ``sudo chmod +x django-admin.py``. Running virtualenv on Windows ----------------------------- If you used virtualenv_ to :ref:`install Django ` on Windows, you may get an ``ImportError`` when you try to run ``django-admin.py``. This is because Windows does not run the Python interpreter from your virtual environment unless you invoke it directly. Instead, prefix all commands that use .py files with ``python`` and use the full path to the file, like so: ``python C:\pythonXY\Scripts\django-admin.py``. .. _virtualenv: http://www.virtualenv.org/ Miscellaneous ============= I'm getting a ``UnicodeDecodeError``. What am I doing wrong? ------------------------------------------------------------ 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. Related resources: * :doc:`Unicode in Django ` * https://wiki.python.org/moin/UnicodeDecodeError