環境

検証済みバージョンはPython 3.5.2です.最低でもpython 3.5以上が推奨です.

外部モジュール

  • beautifulsoup4
  • lxml
  • nose
  • oauthlib
  • requests
  • requests-oauthlib
  • six
  • SQLAlchemy
  • tweepy

IDE

JetbrainsのPyCharmがオススメです.Community版でも問題ありませんが,学生は無料でProfessional版を入手できます.

開発環境の構築

Python 3.5以上,Git,及びPyCharmがインストール済みであるとします.

Windows

1. Pythonの仮想環境を構築

C:¥> cd C:¥User¥<ユーザ名>¥PycharmProjects
~¥PycharmProjects> python -m venv qkou
~¥PycharmProjects> cd qkouserver
# 仮想環境の有効化
~¥qkouserver> Scripts¥activate
(qkou) ~¥qkouserver> where python
C:¥User¥<ユーザ名>¥PycharmProjects¥qkouserver¥bin¥python
# 仮想環境の無効化
(qkou) ~¥qkouserver> deactivate
~¥qkouserver>

2. PyCharmからPythonインタプリタを指定

  1. 新規プロジェクトを作成し,ディレクトリ名をqkouserverとする
  2. pythonインタプリタの指定からAdd localを選択し,C:¥User¥<ユーザ名>¥PycharmProjects¥qkouserver¥bin¥pythonを指定.
  3. OK

3. Githubからクローン

C:¥> cd C:¥User¥<ユーザ名>¥PycharmProjects¥qkouserver
~¥qkouserver> git clone https://github.com/pddg/qkouserver.git src

PyCharmからプロジェクトディレクトリ中のsrcを右クリック,ルートディレクトリとしてマーク.

4. ライブラリのインストール

~¥qkouserver> Scripts¥activate
(qkou) ~¥qkouserver> where pip
C:¥User¥<ユーザ名>¥PycharmProjects¥qkouserver¥bin¥pip
(qkou) ~¥qkouserver> cd src
(qkou) ~¥src> pip install -r requirements.txt

lxmlのインストールに失敗する場合

VisualStudioなどがインストールされている環境ではインストールに失敗することがあります.その場合,有志の方が作成されたパッケージをインストールします.

  1. http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxmlにアクセス
  2. lxml‑3.7.3‑cp35‑cp35m‑win32.whlまたはlxml‑3.7.3‑cp35‑cp35m‑win_amd64.whlをプロジェクトディレクトリにダウンロード
  3. 仮想環境を有効化してpip install <ダウンロードしたパッケージ名>

5. テスト

(qkou) $ nosetests
...............
----------------------------------------------------------------------
Ran 15 tests in 2.555s

OK

Mac

Homebrew及びPyCharmはインストール済みであるとします.

1. Pythonの仮想環境を構築

pyenvのインストール

$ brew install pyenv pyenv-virtualenv

.bashrcの有効化とpyenvの有効化

$ vim ~/.bash_profile
if [ -f ~/.bashrc ] ; then
    . ~/.bashrc
fi
$ vim ~/.bashrc
export PYENV_ROOT=/usr/local/var/pyenv
export PATH=$PATH:$PYENV_ROOT/bin
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
if which pyenv-virtualenv-init > /dev/null;
  then eval "$(pyenv virtualenv-init -)";
fi
$ source ~/.bashrc

仮想環境の構築

$ pyenv install 3.5.2
$ pyenv virtualenv 3.5.2 qkou
$ mkdir ~/PycharmProjects/qkouserver
$ cd ~/PycharmProjects/qkouserver
$ pyenv local qkou
(qkou) $ which python
/usr/local/var/pyenv/versions/qkou/bin/python

2. PyCharmからPythonインタプリタを指定

  1. 新規プロジェクトを作成し,ディレクトリ名をqkouserverとする
  2. pythonインタプリタの指定からAdd localを選択し,/usr/local/var/pyenv/versions/qkou/bin/pythonを指定.
  3. OK

3. Githubからクローン

$ git clone https://github.com/pddg/qkouserver.git ~/PycharmProjects/qkouserver

4. ライブラリのインストール

$ cd ~/PycharmProjects/qkouserver
(qkou) $ pip install -r requirements.txt

5. テスト

(qkou) $ nosetests
...............
----------------------------------------------------------------------
Ran 15 tests in 2.555s

OK

運用環境の構築

運用はLinux環境においてDocker使用を想定しています.Dockerを使用しない場合,開発環境の構築と同様にPythonの仮想環境を構築して運用してください.

Ubuntu

Docker,およびdocker-composeはインストール済みであるとします.

1. イメージをpull

$ docker pull pddg/qkouserver:latest
$ docker run --rm pddg/qkouserver:latest
how usage for this script.
Options:
        -h      show this message.
Commands:
        qkoubot         Setup qkoubot with cron.
        dailyjob        Setup qkoubot's daily job with cron.
        stream          Start streaming processing.

2. Twitterの認証情報や学生番号等を入力

docker-compose.ymlを置くディレクトリを適当に決めます.今回はユーザのホームディレクトリ以下にcontainers/qkoubotを作成します.

$ mkdir containers/qkoubot
$ mkdir data
$ mkdir log
$ curl https://raw.githubusercontent.com/pddg/qkouserver/master/config.ini.sample > data/config.ini
$ vim data/config.ini

3. docker-compose.ymlを記述

$ vim docker-compose.yml
version: "2"
services:
  qkoubot:
    container_name: qkoubot
    image: pddg/qkouserver:latest
    volumes:
      - ./data:/data
      - ./log:/srv/qkouserver/log
    command: qkoubot -v -t --ini /data/config.ini --file-log-enable
    restart: always
  qkoustream:
    container_name: qkoustream
    image: pddg/qkouserver:latest
    volumes:
      - ./data:/data
      - ./log:/srv/qkouserver/log
    restart: always
    command: stream -v --ini /data/config.ini --file-log-enable

4. 起動

$ docker-compose up -d

INITIALIZEフラグを建てない限り,crontabへのジョブの登録前に一度ツイート機能を無効にしてデータベースを作成します.そのため,二回目以降の起動では以下の様にフラグを建てることでこれを回避出来ます.

二回目以降の起動

docker-compose.ymlにおいてqkoubotに環境変数を追加します.

# 省略
  qkoubot:
  # 省略
  environment:
    INITIALIZE: "false"
# 省略

これにより最初のデータベース作成プロセスが省かれます.

コンテナのビルド

リポジトリに既にDockerfileが含まれています.ベースイメージはalpine:3.5です.

$ git clone https://github.com/pddg/qkouserver.git qkouserver
$ docker build ./qkouserver

results matching ""

    No results matching ""