| 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`: 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.4 |
| through 2.7. 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 :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/ |
| .. _WSGI: http://www.python.org/dev/peps/pep-0333/ |
| .. _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.4 versus newer Python versions, such as Python 2.5 or 2.6? |
| ----------------------------------------------------------------------------------------------- |
| |
| Not in the core framework. Currently, Django itself officially supports any |
| version of Python from 2.4 through 2.7, inclusive. 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. For example Django provides |
| some `context managers`_ for various operations. If you use Python 2.4 you |
| won't be able to use them, however other APIs which provide the same |
| functionality are always made available. |
| |
| Third-party applications for use with Django are, of course, free to set their |
| own version requirements. |
| |
| 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 |
| (see below for details). |
| |
| 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.4, and |
| will help ease the process of dropping support for older Python versions on |
| the road to Python 3. |
| |
| .. _context managers: http://docs.python.org/reference/datamodel.html#context-managers |
| |
| Can I use Django with Python 2.3? |
| --------------------------------- |
| |
| Django 1.1 (and earlier) supported Python 2.3. Django 1.2 and newer does not. |
| We highly recommend you upgrade Python if at all possible, but Django 1.1 will |
| continue to work on Python 2.3. |
| |
| Can I use Django with Python 3? |
| ------------------------------- |
| |
| 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 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. |