--- title: Django 開発環境の設定 slug: Learn/Server-side/Django/development_environment tags: - Python - Webフレームワーク - django - サーバーサイドプログラミング translation_of: Learn/Server-side/Django/development_environment ---
Djangoがどういうものか知ったので、Windows、Linux(Ubuntu)、およびmacOSでDjango開発環境をセットアップしてテストする方法を説明します。一般的なオペレーティングシステムを使っていれば、Djangoアプリケーションの開発を始められます。
前提条件: | ターミナル/コマンドラインを開く方法を知っていること。開発用コンピュータのオペレーティングシステムにソフトウェアパッケージをインストールする方法を知っていること。 |
---|---|
目的: | あなたのコンピュータでDjango(2.0)の開発環境を動かします。 |
Djangoは自分のコンピュータをセットアップするのはとても簡単で、Webアプリケーションの開発を開始できます。このセクションでは、開発環境の内容を説明し、セットアップおよび構成オプションの一部の概要を示します。また、Ubuntu、macOS X、WindowsにDjango開発環境をインストールする際の推奨される方法と、そのテスト方法について説明します。
開発環境はDjangoをローカルコンピュータにインストールしたものです。Djangoアプリを開発し、運用環境にデプロイする前にテストできます。
Django自体が提供する主なツールは、Djangoプロジェクトを作成して作業するためのPythonスクリプトと、ローカルの(つまり、外部のWebサーバーではなく)Django Webアプリケーションをあなたのコンピュータ上のウェブブラウザでテストするための簡単な開発用Webサーバーです。
開発環境の一部を構成する他の周辺ツールがありますが、ここではカバーしません。これには、コードを編集するためのテキストエディタやIDE、コードの異なるバージョンを安全に管理するためのGitのようなソース管理ツールなどがあります。すでにテキストエディタがインストールされていると仮定しています。
Djangoは、インストール場所と設定の方法に関して非常に柔軟性があります。Djangoは次のようなことが可能です:
これらのオプションは、それぞれわずかに異なる構成とセットアップを必要とします。以下のサブセクションでは、いくつかの選択肢について説明します。この記事の残りの部分では、いくつかオペレーティングシステムにDjangoをセットアップする方法を説明します。このモジュールの残りの部分は、セットアップが済んでいる想定です。
ノート: その他のインストールオプションについては、Djangoの公式ドキュメントでカバーされています。下記で適切なドキュメントにリンクしています。
DjangoのWebアプリケーションは、Python 3プログラミング言語を実行できるほとんどすべてのマシン(Windows、MacOS X、Linux / Unix、Solarisなど)で実行できます。ほとんどのコンピュータで開発中にDjangoを実行できるパフォーマンスが必要です。
この記事では、Windows、macOS X、およびLinux/Unixについて説明します。
最新のバージョンを使用することをお勧めします - 執筆時点ではPython 3.6です。
必要であればPython 3.4以上を使用できます(Python 3.4のサポートは将来のリリースでは廃止される予定です)。
ノート: Python 2.7はDjango 2.0では使用できません(Django 1.11.x系はPython 2.7をサポートする最後のバージョンです)。
Djangoをダウンロードする場所は3つあります:
この記事ではPyPiからDjangoをインストールし、最新の安定版を入手する方法を説明します。
Djangoは4つの主要なデータベース(PostgreSQL、MySQL、Oracle、SQLite)をサポートしています。また、他の一般的なSQLデータベースやNOSQLデータベースにさまざまなレベルのサポートを提供するコミュニティライブラリもあります。 DjangoはObject-Relational Mapper(ORM)を使用して多くのデータベースの違いを抽象化していますが、回避する方が良い潜在的な問題がまだあります。
この記事(とこのモジュールのほとんど)では、データをファイルに保存するSQLiteデータベースを使用します。 SQLiteは軽量データベースとしての使用を目的としており、高度な並行性はサポートできません。 ただし、主に読み取り専用のアプリケーションには最適です。
ノート: Djangoは、標準ツール(django-admin)を使用してWebサイトプロジェクトを開始するときに、デフォルトでSQLiteを使用するように設定されています。 これは、追加の設定やセットアップが不要なため、入門には最適な選択です。
Python3をインストールすると、すべてのPython3コードで共有される単一のグローバル環境が得られます。 環境に好きなPythonパッケージをインストールすることはできますが、一度に1つのパッケージしかインストールできません。
ノート: グローバル環境にインストールされたPythonアプリケーションは、お互いに衝突する可能性があります(例えば、同じパッケージの異なるバージョンに依存する場合)。
Djangoをデフォルト/グローバル環境にインストールすると、コンピュータ上でDjangoの1つのバージョンのみを対象にできます。 古いバージョンに依存しているWebサイトを維持しながら、新しいWebサイト(Djangoの最新バージョンを使用)を作成したい場合、これは問題になる可能性があります。
その結果、経験豊富なPython/Django開発者は通常、独立したPython仮想環境内でPythonアプリケーションを実行します。これにより、1台のコンピュータ上で複数の異なるDjango環境を使用することができます。Djangoの開発チームは、Pythonの仮想環境を使用することをお勧めしています。
このモジュールは以下に示す方法で、仮想環境にDjangoをインストールすることを前提としています。
Djangoを使用するには、オペレーティングシステムにPythonをインストールする必要があります。Python 3を使用している場合は、Djangoとその他のPythonアプリケーションで使用されるPythonパッケージ/ライブラリの管理(インストール、更新、削除)に使用する Python Package Indexツール『pip3』も必要です。
このセクションでは、Ubuntu Linux 16.04、macOS X、およびWindows 10のPythonのバージョンを確認し、必要に応じて新しいバージョンをインストールする方法を簡単に説明します。
ノート: 使用しているプラットフォームによっては、オペレーティングシステム独自のパッケージマネージャやその他のメカニズムを使ってPython/pipをインストールできます。ほとんどのプラットフォームでは、 https://www.python.org/downloads/ から必要なインストールファイルをダウンロードし、適切なプラットフォーム固有の方法を使用してインストールできます。
Ubuntu Linux 16.04 LTSにはデフォルトでPython 3.5.2が含まれています。 これを確認するには、bash端末で次のコマンドを実行します:
python3 -V
Python 3.5.2
しかし、Python 3(Djangoを含む)用のパッケージをインストールするために必要なPython Package Indexツールは、デフォルトでは利用できません。 次のコマンドを使用してbash端末にpip3をインストールできます:
sudo apt-get install python3-pip
macOS X "El Capitan"やその他の最近のバージョンにはPython 3は含まれていません。これはbash端末で次のコマンドを実行することで確認できます:
python3 -V
-bash: python3: command not found
python.orgのPython 3(pip3ツールと一緒に)を簡単にインストールできます:
以下に示すように、Python 3を確認することで、正常にインストールされたことを確認できます:
python3 -V
Python 3.6.4
同様にpip3がインストールされていることを確認するには、利用可能なパッケージを一覧表示します:
pip3 list
WindowsにはデフォルトでPythonは含まれていませんが、python.orgからpip3ツールと一緒に簡単にインストールできます:
Python 3がインストールされたことを確認するには、コマンドプロンプトに次のテキストを入力します:
py -3 -V
Python 3.6.4
Windowsインストーラには、デフォルトでpip3(Pythonパッケージマネージャ)が組み込まれています。次に示すようにインストールされたパッケージを一覧表示できます:
pip3 list
ノート: インストーラは、上記のコマンドが動作するために必要なものすべてをセットアップする必要があります。Pythonが見つからないというメッセージが表示された場合は、システムパスに追加する必要があります。
仮想環境を作成するために使用するライブラリは、 virtualenvwrapper (LinuxとmacOS X)とvirtualenvwrapper-win(Windows)です。これらはどちらもvirtualenvツールを使用します。ラッパーツールは、すべてのプラットフォーム上のインターフェイスを管理するための一貫したインターフェイスを作成します。
Pythonとpipをインストールした後、virtualenvwrapper(virtualenvを含む)をインストールできます。公式インストールガイドはこちら、または下記の手順に従ってください。
pip3を使用してツールをインストールします:
sudo pip3 install virtualenvwrapper
次に、シェルのスタートアップファイルの最後に次の行を追加します(これはホームディレクトリ内の .bashrc という名前の隠しファイルです)。これらは、仮想環境の存在場所、開発プロジェクトディレクトリの場所、およびこのパッケージと共にインストールされるスクリプトの場所を設定します:
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /usr/bin/python3 '
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
ノート: VIRTUALENVWRAPPER_PYTHON
およびVIRTUALENVWRAPPER_VIRTUALENV_ARGS
変数は、Python3の通常のインストール場所を指し、source /usr/local/bin/virtualenvwrapper.sh
はvirtualenvwrapper.sh
スクリプトの通常の場所を指します。テスト時にvirtualenvが動作しない場合は、Pythonとスクリプトが予想される場所にあることを確認してから、起動ファイルを適切に変更してください。
あなたのシステムでの正しい場所は、which virtualenvwrapper.sh
とwhich python3
というコマンドを使って見つけることができます。
次に、ターミナルで次のコマンドを実行してスタートアップファイルをリロードします:
source ~/.bashrc
この時点で、以下に示すように一連のスクリプトが実行されているはずです:
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/postmkproject
...
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/get_env_details
これで、mkvirtualenv
コマンドを使用して新しい仮想環境を作成できます。
macOS Xでのvirtualenvwrapperのセットアップは、Ubuntuの場合とほぼ同じです(オフィシャルインストールガイドまたはそれ以下の指示に従います)。
次に示すようにpipを使用してvirtualenvwrapper(およびvirtualenvをバンドル)をインストールします。
sudo pip3 install virtualenvwrapper
次に、シェルスタートアップファイルの最後に次の行を追加します。
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
ノート: VIRTUALENVWRAPPER_PYTHON
変数はPython3の通常のインストール場所を指し、source /usr/local/bin/virtualenvwrapper.sh
はvirtualenvwrapper.sh
スクリプトの通常の場所を指しています。テスト時にvirtualenvが動作しない場合は、Pythonとスクリプトが予想される場所にあることを確認してから、起動ファイルを適切に変更してください。
たとえば、macOSでの1つのインストールテストでは、スタートアップファイルに次の行が必要になりました:
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
export PROJECT_HOME=$HOME/Devel
source /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh
あなたのシステムでの正しい場所は、which virtualenvwrapper.sh
とwhich python3
というコマンドを使って見つけることができます。
これらはUbuntuの場合と同じ行ですが、スタートアップファイルはホームディレクトリ内で .bash_profile という別の名前の隠しファイルです。
ノート: 編集する.bash-profileがFinderで見つからない場合は、ターミナルでnanoを使用して開くこともできます。
コマンドは次のようになります:
cd ~ # Navigate to my home directory
ls -la #List the content of the directory. YOu should see .bash_profile
nano .bash_profile # Open the file in the nano text editor, within the terminal
# Scroll to the end of the file, and copy in the lines above
# Use Ctrl+X to exit nano, Choose Y to save the file.
ターミナルで次の呼び出しを行うことによって、スタートアップファイルをリロードします:
source ~/.bash_profile
この時点で、たくさんのスクリプトが実行されているのを見ることができます(Ubuntuのインストールと同じスクリプト)。mkvirtualenv
コマンドを使用して新しい仮想環境を作成できるようになりました。
virtualenvwrapper-winのインストールは、仮想環境情報を保存する場所(デフォルト値があります)を設定する必要がないため、virtualenvwrapperを設定するより簡単です。コマンドプロンプトで次のコマンドを実行するだけです:
pip3 install virtualenvwrapper-win
これで、mkvirtualenv
コマンドで新しい仮想環境を作成できます。
virtualenvwrapperまたはvirtualenvwrapper-winをインストールすると、仮想環境での作業はすべてのプラットフォームでほとんど同様になります。
mkvirtualenv
コマンドを使用して新しい仮想環境を作成できます。このコマンドが実行されると、セットアップされる環境が表示されます(表示されるのはプラットフォーム固有のものです)。コマンドが完了すると、新しい仮想環境がアクティブになります。これは、プロンプトの開始が環境の名前(下に示すように)になるので、確認できます。
$ mkvirtualenv my_django_environment
Running virtualenv with interpreter /usr/bin/python3
...
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/t_env7/bin/get_env_details
(my_django_environment) ubuntu@ubuntu:~$
これで、Djangoをインストールして開発を開始できる仮想環境の中に入りました。
ノート: これ以降、この記事(と実際にはモジュール)では、上でセットアップしたようなPython仮想環境内でコマンドが実行されると仮定してください。
他にも知っておくべき便利なコマンドがいくつかあります(ツールのドキュメントには多くのものがありますが、これらはいつも使用するコマンドです):
deactivate
— 現在のPython仮想環境を終了しますworkon
— 利用可能な仮想環境を一覧表示しますworkon name_of_environment
— 指定したPython仮想環境を有効にしますrmvirtualenv name_of_environment
— 指定された環境を削除します仮想環境を作成し、workon
でその環境に入ってから、pip3を使用してDjangoをインストールできます。
pip3 install django
Djangoがインストールされていることをテストするには、次のコマンドを実行します(PythonがDjangoモジュールを見つけることができます):
# Linux/macOS X python3 -m django --version 2.0 # Windows py -3 -m django --version 2.0
ノート: Windowsではpy -3
コマンドをプレフィックスにしてPython 3スクリプトを起動し、Linux/macOS Xでは python3
を実行します。
重要: このモジュールの残りの部分は、 Python 3 (python3
) を呼び出すためにLinuxコマンドを使用します。Windowsで作業している場合は、単にこの接頭辞をpy -3
に置き換えてください。
上記のテストはうまくいきますが、それほど楽しいことではありません。より面白いテストは、スケルトンプロジェクトを作成し、それが動作することを確認することです。これを行うには、コマンドプロンプト/ターミナルでDjangoアプリケーションを保存する場所に移動します。テストサイト用のフォルダを作成し、そのサイトに移動します。
mkdir django_test cd django_test
次に示すように、django-adminツールを使用して、 "mytestsite"という新しいスケルトンサイトを作成します。サイトを作成したら、manage.pyというプロジェクト管理用のメインスクリプトがあるフォルダに移動します。
django-admin startproject mytestsite cd mytestsite
次に示すようにmanage.pyとrunserver
コマンドを使用して、このフォルダ内から開発用Webサーバーを実行できます。
$ python3 manage.py runserver Performing system checks... System check identified no issues (0 silenced). You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. December 29, 2017 - 03:03:47 Django version 2.0, using settings 'mytestsite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
ノート: 上記のコマンドは、Linux/macOS Xコマンドを示しています。この時点では、 "14 unapplied migration(s)" という警告は無視できます!
サーバーが稼働したら、ローカルWebブラウザで http://127.0.0.1:8000/
というURLに移動して、サイトを表示できます。次のようなサイトが表示されます:
Django開発環境をあなたのコンピュータ上で稼働できるようになりました。
テストのセクションでは、django-admin startproject
を使用して新しいDjango Webサイトを作成する方法と、開発用Webサーバー(python3 manage.py runserver
)を使用してブラウザで実行する方法についても簡単に説明しました。次の記事では、このプロセスを拡張して、シンプルで完全なWebアプリケーションを構築します。
{{PreviousMenuNext("Learn/Server-side/Django/Introduction", "Learn/Server-side/Django/Tutorial_local_library_website", "Learn/Server-side/Django")}}