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

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

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

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

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

Django requires Python, specifically Python 2.6.5 - 2.7.x. No other Python
libraries are required for basic Django usage. Django 1.5 also has
experimental support for Python 3.2.3 and above.

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, :pep:`3333`, which means it can run on a variety of server
platforms. See :doc:`Deploying 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/
.. _server arrangements wiki page: https://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.6 versus newer Python versions, such as Python 2.7?
----------------------------------------------------------------------------------------

Not in the core framework. Currently, Django itself officially supports
Python 2.6 (2.6.5 or higher) and 2.7. However, newer versions of
Python are often faster, have more features, and are better supported. If you
use a newer version of Python you will also have access to some APIs that
aren't available under older versions of Python.

Third-party applications for use with Django are, of course, free to set their
own version requirements.

All else being equal, we recommend that you use the latest 2.x release
(currently Python 2.7). This will let you take advantage of the numerous
improvements and optimizations to the Python language since version 2.6.

Generally speaking, we don't recommend running Django on Python 3 yet; see
below for more.

What Python version can I use with Django?
------------------------------------------

============== ===============
Django version Python versions
============== ===============
1.0            2.3, 2.4, 2.5, 2.6
1.1            2.3, 2.4, 2.5, 2.6
1.2            2.4, 2.5, 2.6, 2.7
1.3            2.4, 2.5, 2.6, 2.7
**1.4**        **2.5, 2.6, 2.7**
*1.5 (future)* *2.6, 2.7* and *3.2.3, 3.3 (experimental)*
============== ===============

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

Django 1.5 introduces experimental support for Python 3.2.3 and above. However,
we don't yet suggest that you use Django and Python 3 in production.

Python 3 support should be considered a "preview". It's offered to bootstrap
the transition of the Django ecosystem to Python 3, and to help you start
porting your apps for future Python 3 compatibility. But we're not yet
confident enough to promise stability in production.

Our current plan is to make Django 1.6 suitable for general use with Python 3.

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

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

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

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

Generally, if you're using code in production, you should be using a
stable release. The Django project publishes a full stable release
every nine months or so, with bugfix updates in between. These stable
releases contain the API that is covered by our backwards
compatibility guarantees; if you write code against stable releases,
you shouldn't have any problems upgrading when the next official
version is released.
