{"title":"How to install Django","version":"2.0","locale":"zh-hans","docname":"topics/install","url":"/zh-hans/2.0/topics/install/","canonical":"https://djangodocs.dev/zh-hans/2.0/topics/install/","summary":"This document will get you up and running with Django. 安装Python Link to this heading # Django is a Python Web framework. See 我应该使用哪个版本的Python来配合Django? for details.…","html":"<h1>How to install Django<a class=\"heading-anchor\" href=\"#how-to-install-django\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>This document will get you up and running with Django.</p>\n<section id=\"install-python\">\n<h2>安装Python<a class=\"heading-anchor\" href=\"#install-python\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django is a Python Web framework. See <a class=\"reference internal\" href=\"/zh-hans/2.0/faq/install/#faq-python-version-support\"><span class=\"std std-ref\">我应该使用哪个版本的Python来配合Django?</span></a> for\ndetails.</p>\n<p>获取最新版本的Python可以通过：访问 <a class=\"reference external\" href=\"https://www.python.org/downloads/\">https://www.python.org/downloads/</a> ；或者操作系统的包管理工具。</p>\n<aside class=\"admonition-django-on-jython admonition\">\n<p class=\"admonition-title\">基于 Jython 的 Django</p>\n<p><a class=\"reference external\" href=\"http://www.jython.org/\">Jython</a> (a Python implementation for the Java platform) is not compatible\nwith Python 3, so Django ≥ 2.0 cannot run on Jython.</p>\n</aside>\n<aside class=\"admonition-python-on-windows admonition\">\n<p class=\"admonition-title\">Python on Windows</p>\n<p>If you are just starting with Django and using Windows, you may find\n<a class=\"reference internal\" href=\"/zh-hans/2.0/howto/windows/\"><span class=\"doc\">如何在Windows上安装Django</span></a> useful.</p>\n</aside>\n</section>\n<section id=\"install-apache-and-mod-wsgi\">\n<h2>Install Apache and <code class=\"docutils literal notranslate\"><span class=\"pre\">mod_wsgi</span></code><a class=\"heading-anchor\" href=\"#install-apache-and-mod-wsgi\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>If you just want to experiment with Django, skip ahead to the next\nsection; Django includes a lightweight web server you can use for\ntesting, so you won't need to set up Apache until you're ready to\ndeploy Django in production.</p>\n<p>If you want to use Django on a production site, use <a class=\"reference external\" href=\"https://httpd.apache.org/\">Apache</a> with\n<a class=\"reference external\" href=\"http://www.modwsgi.org/\">mod_wsgi</a>. mod_wsgi operates in one of two modes: embedded\nmode or daemon mode. In embedded mode, mod_wsgi is similar to\nmod_perl -- it embeds Python within Apache and loads Python code into\nmemory when the server starts. Code stays in memory throughout the\nlife of an Apache process, which leads to significant performance\ngains over other server arrangements. In daemon mode, mod_wsgi spawns\nan independent daemon process that handles requests. The daemon\nprocess can run as a different user than the Web server, possibly\nleading to improved security. The daemon process can be restarted\nwithout restarting the entire Apache Web server, possibly making\nrefreshing your codebase more seamless. Consult the mod_wsgi\ndocumentation to determine which mode is right for your setup. Make\nsure you have Apache installed with the mod_wsgi module activated.\nDjango will work with any version of Apache that supports mod_wsgi.</p>\n<p>See <a class=\"reference internal\" href=\"/zh-hans/2.0/howto/deployment/wsgi/modwsgi/\"><span class=\"doc\">How to use Django with mod_wsgi</span></a>\nfor information on how to configure mod_wsgi once you have it\ninstalled.</p>\n<p>If you can't use mod_wsgi for some reason, fear not: Django supports many other\ndeployment options. One is <a class=\"reference internal\" href=\"/zh-hans/2.0/howto/deployment/wsgi/uwsgi/\"><span class=\"doc\">uWSGI</span></a>; it works\nvery well with <a class=\"reference external\" href=\"https://nginx.org/\">nginx</a>. Additionally, Django follows the WSGI spec\n(<span class=\"target\" id=\"index-0\"></span><a class=\"pep reference external\" href=\"https://peps.python.org/pep-3333/\"><strong>PEP 3333</strong></a>), which allows it to run on a variety of server platforms.</p>\n</section>\n<section id=\"get-your-database-running\">\n<span id=\"database-installation\"></span><h2>Get your database running<a class=\"heading-anchor\" href=\"#get-your-database-running\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>If you plan to use Django's database API functionality, you'll need to make\nsure a database server is running. Django supports many different database\nservers and is officially supported with <a class=\"reference external\" href=\"https://www.postgresql.org/\">PostgreSQL</a>, <a class=\"reference external\" href=\"https://www.mysql.com/\">MySQL</a>, <a class=\"reference external\" href=\"https://www.oracle.com/\">Oracle</a> and\n<a class=\"reference external\" href=\"https://www.sqlite.org/\">SQLite</a>.</p>\n<p>If you are developing a simple project or something you don't plan to deploy\nin a production environment, SQLite is generally the simplest option as it\ndoesn't require running a separate server. However, SQLite has many differences\nfrom other databases, so if you are working on something substantial, it's\nrecommended to develop with the same database that you plan on using in\nproduction.</p>\n<p>In addition to the officially supported databases, there are <a class=\"reference internal\" href=\"/zh-hans/2.0/ref/databases/#third-party-notes\"><span class=\"std std-ref\">backends\nprovided by 3rd parties</span></a> that allow you to use other\ndatabases with Django.</p>\n<p>In addition to a database backend, you'll need to make sure your Python\ndatabase bindings are installed.</p>\n<ul class=\"simple\">\n<li><p>If you're using PostgreSQL, you'll need the <a class=\"reference external\" href=\"http://initd.org/psycopg/\">psycopg2</a> package. Refer to the\n<a class=\"reference internal\" href=\"/zh-hans/2.0/ref/databases/#postgresql-notes\"><span class=\"std std-ref\">PostgreSQL notes</span></a> for further details.</p></li>\n<li><p>If you're using MySQL, you'll need a <a class=\"reference internal\" href=\"/zh-hans/2.0/ref/databases/#mysql-db-api-drivers\"><span class=\"std std-ref\">DB API driver</span></a> like <code class=\"docutils literal notranslate\"><span class=\"pre\">mysqlclient</span></code>. See <a class=\"reference internal\" href=\"/zh-hans/2.0/ref/databases/#mysql-notes\"><span class=\"std std-ref\">notes for the MySQL\nbackend</span></a> for details.</p></li>\n<li><p>If you're using SQLite you might want to read the <a class=\"reference internal\" href=\"/zh-hans/2.0/ref/databases/#sqlite-notes\"><span class=\"std std-ref\">SQLite backend notes</span></a>.</p></li>\n<li><p>If you're using Oracle, you'll need a copy of <a class=\"reference external\" href=\"https://oracle.github.io/python-cx_Oracle/\">cx_Oracle</a>, but please\nread the <a class=\"reference internal\" href=\"/zh-hans/2.0/ref/databases/#oracle-notes\"><span class=\"std std-ref\">notes for the Oracle backend</span></a> for details\nregarding supported versions of both Oracle and <code class=\"docutils literal notranslate\"><span class=\"pre\">cx_Oracle</span></code>.</p></li>\n<li><p>If you're using an unofficial 3rd party backend, please consult the\ndocumentation provided for any additional requirements.</p></li>\n</ul>\n<p>If you plan to use Django's <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">migrate</span></code> command to automatically\ncreate database tables for your models (after first installing Django and\ncreating a project), you'll need to ensure that Django has permission to create\nand alter tables in the database you're using; if you plan to manually create\nthe tables, you can simply grant Django <code class=\"docutils literal notranslate\"><span class=\"pre\">SELECT</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">INSERT</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">UPDATE</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">DELETE</span></code> permissions. After creating a database user with these\npermissions, you'll specify the details in your project's settings file,\nsee <a class=\"reference internal\" href=\"/zh-hans/2.0/ref/settings/#std-setting-DATABASES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATABASES</span></code></a> for details.</p>\n<p>If you're using Django's <a class=\"reference internal\" href=\"/zh-hans/2.0/topics/testing/\"><span class=\"doc\">testing framework</span></a> to test\ndatabase queries, Django will need permission to create a test database.</p>\n</section>\n<section id=\"remove-any-old-versions-of-django\">\n<span id=\"removing-old-versions-of-django\"></span><h2>移除任何老版本的Django<a class=\"heading-anchor\" href=\"#remove-any-old-versions-of-django\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>If you are upgrading your installation of Django from a previous version,\nyou will need to uninstall the old Django version before installing the\nnew version.</p>\n<p>If you installed Django using <a class=\"reference external\" href=\"https://pip.pypa.io/\">pip</a> or <code class=\"docutils literal notranslate\"><span class=\"pre\">easy_install</span></code> previously, installing\nwith <a class=\"reference external\" href=\"https://pip.pypa.io/\">pip</a> or <code class=\"docutils literal notranslate\"><span class=\"pre\">easy_install</span></code> again will automatically take care of the old\nversion, so you don't need to do it yourself.</p>\n<p>If you previously installed Django using <code class=\"docutils literal notranslate\"><span class=\"pre\">python</span> <span class=\"pre\">setup.py</span> <span class=\"pre\">install</span></code>,\nuninstalling is as simple as deleting the <code class=\"docutils literal notranslate\"><span class=\"pre\">django</span></code> directory from your Python\n<code class=\"docutils literal notranslate\"><span class=\"pre\">site-packages</span></code>. To find the directory you need to remove, you can run the\nfollowing at your shell prompt (not the interactive Python prompt):</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>-c<span class=\"w\"> </span><span class=\"s2\">&quot;import django; print(django.__path__)&quot;</span>\n</code></pre></div>\n</section>\n<section id=\"install-the-django-code\">\n<span id=\"install-django-code\"></span><h2>Install the Django code<a class=\"heading-anchor\" href=\"#install-the-django-code\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Installation instructions are slightly different depending on whether you're\ninstalling a distribution-specific package, downloading the latest official\nrelease, or fetching the latest development version.</p>\n<p>It's easy, no matter which way you choose.</p>\n<section id=\"installing-an-official-release-with-pip\">\n<span id=\"installing-official-release\"></span><h3>Installing an official release with <code class=\"docutils literal notranslate\"><span class=\"pre\">pip</span></code><a class=\"heading-anchor\" href=\"#installing-an-official-release-with-pip\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>This is the recommended way to install Django.</p>\n<ol class=\"arabic simple\">\n<li><p>Install <a class=\"reference external\" href=\"https://pip.pypa.io/\">pip</a>. The easiest is to use the <a class=\"reference external\" href=\"https://pip.pypa.io/en/latest/installing/#installing-with-get-pip-py\">standalone pip installer</a>. If your\ndistribution already has <code class=\"docutils literal notranslate\"><span class=\"pre\">pip</span></code> installed, you might need to update it if\nit's outdated. If it's outdated, you'll know because installation won't\nwork.</p></li>\n<li><p>Take a look at <a class=\"reference external\" href=\"https://virtualenv.pypa.io/\">virtualenv</a> and <a class=\"reference external\" href=\"https://virtualenvwrapper.readthedocs.io/en/latest/\">virtualenvwrapper</a>. These tools provide\nisolated Python environments, which are more practical than installing\npackages systemwide. They also allow installing packages without\nadministrator privileges. The <a class=\"reference internal\" href=\"/zh-hans/2.0/intro/contributing/\"><span class=\"doc\">contributing tutorial</span></a> walks through how to create a virtualenv.</p></li>\n<li><p>After you've created and activated a virtual environment, enter the command\n<code class=\"docutils literal notranslate\"><span class=\"pre\">pip</span> <span class=\"pre\">install</span> <span class=\"pre\">Django</span></code> at the shell prompt.</p></li>\n</ol>\n</section>\n<section id=\"installing-a-distribution-specific-package\">\n<span id=\"installing-distribution-package\"></span><h3>Installing a distribution-specific package<a class=\"heading-anchor\" href=\"#installing-a-distribution-specific-package\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Check the <a class=\"reference internal\" href=\"/zh-hans/2.0/misc/distributions/\"><span class=\"doc\">distribution specific notes</span></a> to see if\nyour platform/distribution provides official Django packages/installers.\nDistribution-provided packages will typically allow for automatic installation\nof dependencies and easy upgrade paths; however, these packages will rarely\ncontain the latest release of Django.</p>\n</section>\n<section id=\"installing-the-development-version\">\n<span id=\"installing-development-version\"></span><h3>Installing the development version<a class=\"heading-anchor\" href=\"#installing-the-development-version\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"admonition-tracking-django-development admonition\">\n<p class=\"admonition-title\">Tracking Django development</p>\n<p>If you decide to use the latest development version of Django,\nyou'll want to pay close attention to <a class=\"reference external\" href=\"https://code.djangoproject.com/timeline\">the development timeline</a>,\nand you'll want to keep an eye on the <a class=\"reference internal\" href=\"/zh-hans/2.0/releases/#development-release-notes\"><span class=\"std std-ref\">release notes for the\nupcoming release</span></a>. This will help you stay\non top of any new features you might want to use, as well as any changes\nyou'll need to make to your code when updating your copy of Django.\n(For stable releases, any necessary changes are documented in the\nrelease notes.)</p>\n</aside>\n<p>If you'd like to be able to update your Django code occasionally with the\nlatest bug fixes and improvements, follow these instructions:</p>\n<ol class=\"arabic\">\n<li><p>Make sure that you have <a class=\"reference external\" href=\"https://git-scm.com/\">Git</a> installed and that you can run its commands\nfrom a shell. (Enter <code class=\"docutils literal notranslate\"><span class=\"pre\">git</span> <span class=\"pre\">help</span></code> at a shell prompt to test this.)</p></li>\n<li><p>Check out Django's main development branch like so:</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>git<span class=\"w\"> </span>clone<span class=\"w\"> </span>https://github.com/django/django.git\n</code></pre></div>\n<p>This will create a directory <code class=\"docutils literal notranslate\"><span class=\"pre\">django</span></code> in your current directory.</p>\n</li>\n<li><p>Make sure that the Python interpreter can load Django's code. The most\nconvenient way to do this is to use <a class=\"reference external\" href=\"https://virtualenv.pypa.io/\">virtualenv</a>, <a class=\"reference external\" href=\"https://virtualenvwrapper.readthedocs.io/en/latest/\">virtualenvwrapper</a>, and\n<a class=\"reference external\" href=\"https://pip.pypa.io/\">pip</a>. The <a class=\"reference internal\" href=\"/zh-hans/2.0/intro/contributing/\"><span class=\"doc\">contributing tutorial</span></a> walks through\nhow to create a virtualenv.</p></li>\n<li><p>After setting up and activating the virtualenv, run the following command:</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>-e<span class=\"w\"> </span>django/\n</code></pre></div>\n<p>This will make Django's code importable, and will also make the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django-admin</span></code> utility command available. In other words, you're all\nset!</p>\n</li>\n</ol>\n<p>When you want to update your copy of the Django source code, just run the\ncommand <code class=\"docutils literal notranslate\"><span class=\"pre\">git</span> <span class=\"pre\">pull</span></code> from within the <code class=\"docutils literal notranslate\"><span class=\"pre\">django</span></code> directory. When you do this,\nGit will automatically download any changes.</p>\n</section>\n</section>","rootId":"how-to-install-django","toc":[{"title":"安装Python","anchor":"install-python","children":[]},{"title":"Install Apache and mod_wsgi","anchor":"install-apache-and-mod-wsgi","children":[]},{"title":"Get your database running","anchor":"get-your-database-running","children":[]},{"title":"移除任何老版本的Django","anchor":"remove-any-old-versions-of-django","children":[]},{"title":"Install the Django code","anchor":"install-the-django-code","children":[{"title":"Installing an official release with pip","anchor":"installing-an-official-release-with-pip","children":[]},{"title":"Installing a distribution-specific package","anchor":"installing-a-distribution-specific-package","children":[]},{"title":"Installing the development version","anchor":"installing-the-development-version","children":[]}]}],"breadcrumbs":[{"docname":"topics/index","title":"Using Django","url":"/zh-hans/2.0/topics/"}],"prev":{"docname":"topics/index","title":"Using Django","url":"/zh-hans/2.0/topics/"},"next":{"docname":"topics/db/index","title":"模型和数据库","url":"/zh-hans/2.0/topics/db/"},"formats":{"html":"/zh-hans/2.0/topics/install/","markdown":"/zh-hans/2.0/topics/install.md","json":"/zh-hans/2.0/topics/install.json"},"source":"https://github.com/django/django/blob/stable/2.0.x/docs/topics/install.txt","official":"https://docs.djangoproject.com/zh-hans/2.0/topics/install/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0"],"inLocales":["en","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}