.. _faq-install:

FAQ: Installation
=================

How do I get started?
---------------------

    #. `Download the code`_.
    #. Install Django (read the :ref:`installation guide <intro-install>`).
    #. Walk through the :ref:`tutorial <intro-tutorial01>`.
    #. Check out the rest of the :ref:`documentation <index>`, and `ask questions`_ if you
       run into trouble.

.. _`Download the code`: http://www.djangoproject.com/download/
.. _ask questions: http://www.djangoproject.com/community/

What are Django's prerequisites?
--------------------------------

Django requires Python_, specifically any version of Python from 2.3
through 2.6. No other Python libraries are required for basic Django
usage.

For a development environment -- if you just want to experiment with Django --
you don't need to have a separate Web server installed; Django comes with its
own lightweight development server. For a production environment, Django
follows the WSGI_ spec, which means it can run on a variety of server
platforms.  See :ref:`Deplying Django <howto-deployment-index>` for some
popular alternatives.  Also, the `server arrangements wiki page`_ contains
details for several deployment strategies.

If you want to use Django with a database, which is probably the case, you'll
also need a database engine. PostgreSQL_ is recommended, because we're
PostgreSQL fans, and MySQL_, `SQLite 3`_, and Oracle_ are also supported.

.. _Python: http://www.python.org/
.. _WSGI: http://www.python.org/peps/pep-0333.html
.. _server arrangements wiki page: http://code.djangoproject.com/wiki/ServerArrangements
.. _PostgreSQL: http://www.postgresql.org/
.. _MySQL: http://www.mysql.com/
.. _`SQLite 3`: http://www.sqlite.org/
.. _Oracle: http://www.oracle.com/

Do I lose anything by using Python 2.3 versus newer Python versions, such as Python 2.5?
----------------------------------------------------------------------------------------

Not in the core framework. Currently, Django itself officially
supports any version of Python from 2.3 through 2.6,
inclusive. However, some add-on components may require a more recent
Python version; the ``django.contrib.gis`` component, for example,
requires at least Python 2.4, and third-party applications for use
with Django are, of course, free to set their own version
requirements.

Please note, however, that over the next year or two Django will begin
dropping support for older Python versions as part of a migration
which will end with Django running on Python 3.0 (see next question
for details). So if you're just starting out with Python, it's
recommended that you use the latest 2.x release (currently, Python
2.6). This will let you take advantage of the numerous improvements
and optimizations to the Python language since version 2.3, and will
help ease the process of dropping support for older Python versions on
the road to Python 3.0.

Can I use Django with Python 3.0?
---------------------------------

Not at the moment. Python 3.0 introduced a number of
backwards-incompatible changes to the Python language, and although
these changes are generally a good thing for Python's future, it will
be a while before most Python software catches up and is able to run
on Python 3.0. For larger Python-based software like Django, the
transition is expected to take at least a year or two (since it
involves dropping support for older Python releases and so must be
done gradually).

In the meantime, Python 2.x releases will be supported and provided
with bug fixes and security updates by the Python development team, so
continuing to use a Python 2.x release during the transition should
not present any risk.

Will Django run under shared hosting (like TextDrive or Dreamhost)?
-------------------------------------------------------------------

See our `Django-friendly Web hosts`_ page.

.. _`Django-friendly Web hosts`: http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts

Should I use the official version or development version?
---------------------------------------------------------

The Django developers improve Django every day and are pretty good about not
checking in broken code. We use the development code (from the Subversion
repository) directly on our servers, so we consider it stable. With that in
mind, we recommend that you use the latest development code, because it
generally contains more features and fewer bugs than the "official" releases.
