UbuntuにAnaconda+Djangoをインストール(MySQLを使用)

Pythonトレード環境を構築したいということで、
UbuntuにDjangoをインストールしてみました。

Python環境は、PyenvにAnacondaで構築します。
ここにDjangoをインストールという流れです。

環境
Ubuntu 16.04.5
Apache/2.4.18
pyenv 1.1.5
anaconda3-5.0.1
Python 3.6
django-2.1.2

Pyenvインストール

pyenvでPython環境を構築します。

gitでpyenvをインストールします。

git clone git://github.com/yyuu/pyenv.git ~/.pyenv

bash_profileに設定追加

以下でbash_profileに設定追加します。

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

Anacondaインストール

Anacondaインストーラーをダウンロード

Anacondaのダウンロードサイトにアクセスして、
「Download」ボタンをクリックして
インストーラーをダウンロードします。

Anacondaインストーラーを実行

次にAnacondaをインストールします。
ダウンロードしたインストーラーを実行します。

bash Anaconda3-5.0.1-Linux-x86_64.sh

Anacondaのバージョンチェック

# pyenv version
anaconda3-5.0.1
# python -V
Python 3.6.3 :: Anaconda, Inc.

condaをアップデートしておきます。

conda update conda

MySQLを使用するための設定

MySQLを使用するためにmysqlclientをインストールします。

mysqlclientにpython3-devとlibmysqlclient-devが必要なので事前にインストールします。

sudo apt-get install python3-dev libmysqlclient-dev

mysqlclientをインストールします。

pip install mysqlclient

Djangoインストール

続いてDjangoをインストールします。

conda install django

インストール確認

python -m django --version
2.1.2

Djangoアプリ作成

サンプルアプリの作成もやってみます。

Djangoアプリ作成のチュートリアルが分かりやすいのでおススメです。

プロジェクトを作成する

プロジェクトを作成したい場所にcdして以下を実行します。

django-admin startproject mysite

実行すると、下記が作成されます。

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

プロジェクトを起動する

プロジェクトを起動させてみます。

python manage.py runserver

Performing system checks...

System check identified no issues (0 silenced).

You have 15 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.

October 23, 2018 - 12:38:55
Django version 2.1.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

ポート番号を変えて、例えば8080で起動させる場合は下記のようにします。

python manage.py runserver 8080

アプリケーションを作成する

polls(投票)アプリケーションを作成してみます。

python manage.py startapp polls

pollsアプリケーションは以下のような構成です。

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

データベースの接続設定

MySQLを使いたいので、mysite/settings.py を以下のように設定します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydatabase',
        'USER': 'mydatabaseuser',
        'PASSWORD': 'mypassword',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

言語とタイムゾーンの設定

mysite/settings.pyでは、他に下記を設定しておきます。

LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'