.. _topics-install: ===================== Django のインストール ===================== :revision-up-to: 17821 (1.4) unfinished このドキュメントを読めば Django を動かせるようになります。 Python のインストール ===================== Django は Python の Web フレームワークなので、当然 Python が必要です。 Djangoを動かすには2.5から2.7までのバージョンのPythonが必要です。 (後方互換性の確保のため、Python3.0ではDjangoは動作しません。 :doc:`the Django FAQ ` を参考にすれば、Python3.0のサポートに関してもっと詳しい 情報を手に入れることが出来ます。 http://www.python.org から Python を取ってきましょう。 Linux や Mac OSX を 動かしているのなら、おそらくインストール済みのはずです。 .. admonition:: Jython で Django を動かす Jython_ (Java プラットフォームで動く Python 実装) を使っているなら、他 にもいくつかステップを踏む必要があります。詳しくは :doc:`/howto/jython` を参照してください。 .. _jython: http://jython.org/ .. admonition:: Windows上のPython Windows上では、 ``PATH`` の環境を設定しなければなりません。パスをPython の実行可能ファイルとそのスクリプトまで通す必要があります。例えば、もし、 ``C:\Python27\`` にPythonがインストールがされているならば、追加しなけ ればいけない ``PATH`` は:: C:\Python27\;C:\Python27\Scripts; Apache と mod_wsgi のインストール =================================== 単に Django を試してみたいだけなら、この節は読み飛ばして次の節を読んでくだ さい。Djangoにはテスト用の軽量なWebサーバが付属しているので、運用環境での動 作が必要になるまでApacheをセットアップする必要はないのです。 Django を実運用するサイトで使いたい場合、 Apache と `mod_wsgi`_ を使って下 さい。mod_wsgiにある二つのモードのうち一つを選んで実行できます。エンベデッド モードとデーモンモードがそれです。エンベデッドモードでは、 mod_wsgi は mod_perl のようなもので、 Python を Apache の中に埋め 込み、サーバの起動時に Python コードをメモリにロードします。コードは Apache プロセスが生きている間ずっとメモリ上に存在するので、他のサーバ構成よりも明 らかに高いパフォーマンスを実現します。デーモンモードでは、mod_wsgiは 独立した要求処理のいらないデーモンプロセスを呼びます。 デーモンプロセスはWebサーバーをこえた異なるユーザーとして動作します、これは セキュリティの向上へと導く可能性もあり、そしてデーモンプロセスは Apache Webサーバの 完全なリスタートすることなしでデーモンプロセスを再開でき、あるいはコードベース をよりシームレスなものへとレフレッシュさせるでしょう。 どちらのモードが適切かどうかは、mod_wsgi のドキュメントを確認して決断してください。 まずは mod_wsgi が動作する Apache がインストールされていることを確かめてください。 Django は mod_wsgi をサポートする全てのバージョンの Apache で動作します。 mod_wsgi をインストールした後の設定方法は :doc:`mod_wsgiでDjangoを動かす ` を参照してく ださい。 何らかの理由で mod_wsgi を使えない場合でも心配はいりません Django を運用す る方法は他にもあります。お勧めの第二選択肢は、 mod_wsgi の前身、 :doc:`uWSGI ` です。これは `nginx`_.と一緒に動きます。もう一つは :doc:`FastCGI ` これはApache以外のDjangoと一緒にサーバーを動かす完璧な方法です。付け加えれば、 Django は WSGI 仕様(:pep:`3333`)に従っているので、他にも様々なサーバプラットフォームで 動作させられます。個々のプラットフォームにおけるインストール方法の説明は `サーバ構成に関する wiki ページ`_ を参照してください。 .. _Apache: http://httpd.apache.org/ .. _nginx: http://nginx.net/ .. _mod_wsgi: http://code.google.com/p/modwsgi/ .. _`サーバ構成に関する wiki ページ`: http://code.djangoproject.com/wiki/ServerArrangements .. _server-arrangements wiki page: http://code.djangoproject.com/wiki/ServerArrangements .. _database-installation: データベースを動かす ==================== Django のデータベース API 機能を使うのなら、データベースサーバを動かす必要 があります。 Django は PostgreSQL_, MySQL_, Oracle_ および SQLite_ で動作し ます (SQLite はサーバを動かさなくても使えます)。 公式にサポートされたデータベースに加えて、Djangoで他のデータベースを使うために サードパーティからバックエンドが提供されています。 * `Sybase SQL Anywhere`_ * `IBM DB2`_ * `Microsoft SQL Server 2005`_ * Firebird_ * ODBC_ DjangoとORM機能は非公式なバックエンドによってよく考慮されてサポートされてい ます。クエリは非公式なバックエンドの明確な機能として扱っています、サポートささ されたクエリにそって、おのおののサードパーティのプロジェクトによって提供される サポートチャンネルによって管理されているでしょう。 さらに、各データベースの Python バインディングをインストールしておく必要が あります。 * PostgreSQL を使う場合、 ``postgresql_psycopg2`` パッケージが必要です。 このデータベースについての特有の詳細が欲しいのならば、 :ref:`PostgreSQL notes` を参照するとよいでしょう。 Windows 環境なら、非公式の `Windows むけコンパイル済みパッケージ`_ を使っ て下さい。 * MySQL を使う場合は、バージョン 1.2.1p2 以降の MySQLdb_ が必要です。 :ref:`MySQL バックエンド` にまつわるデータベース固有の説 明も読んでおいたほうがよいでしょう。 * もし、サポートされていないサードパーティのバックエンドを用いる場合、 更なる要望に応えるために提供されているドキュメントを読んでください。 Django の ``manage.py syncdb`` を使って、モデルに対応するテーブルを自動生成 するつもりなら、Django に対して、データベース上でテーブルの生成や ALTER を 行える権限を付与せねばなりません。テーブルを手動で生成するのなら、Django に 付与する権限は ``SELECT``, ``INSERT``, ``UPDATE`` および ``DELETE`` だけで かまいません。ただし、データベースによっては、 ``syncdb`` 時に ``ALTER TABLE`` 権限を付与しておく必要があります。 ``syncdb`` で一度テーブ ルを生成してしまえば、 ``syncdb`` は ``ALTER TABLE`` 文を発行しません。 :doc:`テストフレームワーク` を使ってデータベースクエリのテ ストを行うのなら、データベースを生成する権限も必要です。 .. _PostgreSQL: http://www.postgresql.org/ .. _MySQL: http://www.mysql.com/ .. _psycopg: http://initd.org/projects/psycopg .. _`Windows むけコンパイル済みパッケージ`: http://stickpeople.com/projects/python/win-psycopg/ .. _compiled Windows version: http://stickpeople.com/projects/python/win-psycopg/ .. _MySQLdb: http://sourceforge.net/projects/mysql-python .. _SQLite: http://www.sqlite.org/ .. _pysqlite:http://trac.edgewall.org/wiki/PySqlite .. _cx_Oracle: http://cx-oracle.sourceforge.net/ .. _Oracle: http://www.oracle.com/ .. _Sybase SQL Anywhere: http://code.google.com/p/sqlany-django/ .. _IBM DB2: http://code.google.com/p/ibm-db/ .. _Microsoft SQL Server 2005: http://code.google.com/p/django-mssql/ .. _Firebird: http://code.google.com/p/django-firebird/ .. _ODBC: http://code.google.com/p/django-pyodbc/ .. _removing-old-versions-of-django: 旧バージョンの Django の除去 ============================ 以前のバージョンからアップグレードする形で Django をインストールする場合、 新しいバージョンをインストールする前に、まず旧バージョンをアンインストール しておく必要があります。 ``setup.py install`` を使って Django をインストールした場合は簡単で、 Python の ``site-packages`` ディレクトリから ``django`` ディレクトリを削除 するだけです。 Python egg を使って Django をインストールした場合、Django の ``.egg`` ファ イルを削除するとともに、 ``easy-install.pth`` から Django の ``.egg`` ファ イルパスが書かれたエントリを削除します。 ``easy-install.pth`` や ``.egg`` は、通常 ``site-packages`` ディレクトリ下にあります。 .. サイトパッケージを見つける: .. admonition:: ``site-packages`` はどこにあるの? ``site-packages`` の在処はオペレーティングシステムや Python のインストー ル場所によって異なります。 ``site-pacakges`` の場所を調べるには、以下の コマンドを実行してみてください: .. code-block:: bash python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" (このコマンドはPythonの対話プロンプトではなく、シェルプロンプトで実行してください。) LinuxディストリビューションのDebianは分割する ``site-packages`` というデ ィレクトリをユーザがインストールしたパッケージのために持っていて、 Djangoをダウンロードしたtarballファイルからインストールするような時に使う。 上にあげたコマンドはシステムの ``site-packages`` を渡します、ユーザのディレクトリは ``/usr/local/lib/`` にあり、 ``/usr/lib/`` ではありません。 .. _install-django-code: Django コードのインストール =========================== インストール方法の説明は、 OS ごとのインストールパッケージを入れる場合、公 式リリース版を入れる場合、そして最新の開発バージョンを入れる場合で少し異な ります。 どの方法を選ぶにしても、そんなに難しくはないので安心してください。 OS ごとのインストールパッケージによるインストール ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :doc:`ディストリビューション固有の注意 ` を調べて、自分 のプラットフォーム/ディストリビューションで公式の Django パッケージやインス トーラが提供されていないか調べます。ディストリビューション固有の配布パッケー ジは、たいてい依存関係のあるパッケージを自動的にインストールしてくれたり、パ スの更新を行ってくれたりします。 .. _installing-official-release: 公式リリースのインストールを ``pip`` で ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ これはDjangoをインストールする上でおすすめの方法です。 1. pip_ をインストールします。最も簡単な方法は、 `standalone pip installer`_ を使うことです。もし、 ``pip`` がインストー ルされているディストリビューションなら、古いものであればアップデートす る必要ががあるかもしれません。(もし古いものであれば、インストールがう まく動きません) 2. (オプション) virtualenv_ と virtualenvwrapper_ をみてみましょう。 これらのツールは、個別の Python 環境を構築することができます、 システム全体にパッケージをインストールするよりも実用的です。 これらは、管理者権限なしでもパッケージをインストールできます。 これらのツールを学んだり使うかを決めるのはあなた次第です。 3. もし Linux や MacOsX か、ほかの Unix 系統のOSを使用している場合、 ``sudo pip install Django`` をシェルコマンドで入力します。 Windows を使っているならば、コマンドシェルを管理者権限で起動し、 ``pip install Django`` コマンドを走らせます。 これらで、Python インストールのなかの ``site-packages`` にDjangoが インストールされます。 もし、あなたが virtualenv を使っているなら、 ``sudo`` やadministrator (管理者)の権限を使うことなく、virtualenv の ``site-packages`` ディレクトリに Django がインストールされます。 .. _pip: http://www.pip-installer.org/ .. _virtualenv: http://www.virtualenv.org/ .. _virtualenvwrapper: http://www.doughellmann.com/docs/virtualenvwrapper/ .. _standalone pip installer: http://www.pip-installer.org/en/latest/installing.html#using-the-installer 公式リリースのインストール ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. `ダウンロードページ`_ から、最新版の Django をダウンロードします。 2. ダウンロードしたファイルを tar で展開します。 (例: ``tar xzvf Django-NNN.tar.gz``)。 Windows を使っているのなら、 コマンドラインツール bsdtar_ を使うか、 7-zip_ のような GUI ベースの ツールを使います。 3. ステップ 2 で生成された展開先のディレクトリに移ります (例: ``cd Django-NNN``) 4. Linux, Mac OS X, その他の Unix 系のオペレーティングシステムでは、 シェルプロンプトからコマンド ``sudo python setup.py install`` を入力 します。 Windows を使っているのなら、管理者権限でコマンドプロンプト を起動して、コマンド ``setup.py install`` を実行します。 上のコマンドを実行すると、 Django は Python インストールディレクトリの ``site-packages`` ディレクトリ下にインストールされます。 .. _download page: https://www.djangoproject.com/download/ .. _bsdtar: http://gnuwin32.sourceforge.net/packages/bsdtar.htm .. _7-zip: http://www.7-zip.org/ .. _installing-development-version: 開発バージョンのインストール ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. admonition:: Django の開発版を追いかける 最新版の Django を使うと決めたのなら、 `開発の進行状況`_ によく注意して、 `以前のバージョンと互換性のない変更`_ がないか気をつけておく必要がある でしょう。これらのリンク先のページに注意していれば、使ってみたい新たな 機能や、手元の Django をアップデートする際に、自分のコードのどこを修正 する必要があるか追いかけられます。 (安定版では、 Django のアップデート 時に必要な変更は全てドキュメントに記載されています。) .. _the development timeline: https://code.djangoproject.com/timeline .. _`開発の進行状況`: `the development timeline`_ .. _the list of backwards-incompatible changes: https://code.djangoproject.com/wiki/BackwardsIncompatibleChanges .. _`以前のバージョンと互換性のない変更`: `the list of backwards-incompatible changes`_ Django のコードを更新して最新のバグフィクスや改良を適用したいのなら、以下の 説明に従って開発バージョンをインストールしてください。 1. Subversion_, Git_, Mercurial_ がインストールされていて、シェルからコマンドを実行できること を確認してください。 (調べるには、シェルプロンプトで ``svn help`` 、 ``git help``, ``hg help`` を入力します。) Subversionリポジトリは、公式のGitとMercurialリポジトリ自体が最新のものとな なるような標準のソースということを覚えておいてください。 2. 以下のようにして、Django のメイン開発ブランチ ('trunk') をチェックアウト します: .. code-block:: bash # Subversion svn co https://code.djangoproject.com/svn/django/trunk/ django-trunk Subversionリポジトリのミラーはこんな風に取得できます .. code-block:: bash # Git (requires version 1.6.6 or later) git clone https://github.com/django/django.git # or (works with all versions) git clone git://github.com/django/django.git # Mercurial hg clone https://bitbucket.org/django/django .. warning :: これらのミラーは五分ごとに最新版にアップデートされます。 けれど、サービス上にホストされてから常に五分ごとにアップデートされている という保証がついているわけではないので注意してください。 3. Python インタプリタが Django のコードをロードできるようにします。一番便利な 方法は、 `Python パスの修正`_ することです。 ``.pth`` ファイルに ``django-trunk`` ディレクトリへのフルpathをシステムの ``site-packages`` ディレクトリまで追加することです。例えば Unixライクなシステムでは .. code-block:: bash echo WORKING=DIR/django-trunk > SITE-PACKAGES-DIR/django.pth (上の作業では、使っているプラットフォームの ``site-packages`` ディレク トリに合わせて ``SITE-PACKAGES-DIR`` を書き換えてください。 ``site-packages`` の場所の探し方は、 :ref:`site-packages はどこにあるの? ` を参照してください) 4. ``django_src/django/bin/django-admin.py`` を実行できるようにします。 Unix系のシステムでは、例えば以下のようにして、 ``/usr/local/bin`` のよう なシステムパス上にシンボリックリンクを作成します: .. code-block:: bash ln -s WORKING-DIR/django-trunk/django/bin/django-admin.py /usr/local/bin (上の行では、WORKING-DIRを新しい ``django-trunk`` ディレクトリまでのフル pathとマッチするように変えてください) これで、 ``django-admin.py`` とコマンド入力するだけで、どのディレクトリ 上でも ``django-admin.py`` を起動できるようになります。 Windows では、 ``django_src/django/bin/django-admin.py`` を、 ``C:\Python27\Scripts`` のようなシステムパス上にコピーします。 .. warning:: ``sudo python setup.py install`` を走らせないでください。なぜなら、 ステップ3から4までの行程はそれと同等のことを行っているからです。 もっといえば、これはDjangoを最新のバージョンにアップデートする際に 問題を引き起こすものとして知られています。 Django のソースコードを更新する際には、 ``django-trunk`` ディレクトリで ``svn update`` を実行してください。実行すると、 Subversion が更新部分を自動 的にダウンロードします。同等のコマンドをGitで行うには ``git pull``, Mercurialでは ``hg pull --update`` を実行します .. _Subversion: http://subversion.tigris.org/ .. _Git: http://git-scm.com/ .. _Mercurial: http://mercurial.selenic.com/ .. _`Python パスの修正`: http://docs.python.org/install/index.html#modifying-python-s-search-path .. _`ダウンロードページ`: `download page`_ .. _`コントロールパネルから`: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/ja/sysdm_advancd_environmnt_addchange_variable.mspx