Windows10でPython3でtrac(PostgreSQL)

python2のサポートが2020年までということを知り、Windows環境で常用しているtracをどうにかしてpython3で継続して使いたくていろいろ調べました。

id:jun66j5さんがGitHub上にpython3対応しているソースコードを見つけたので、これをベースにちょっとだけテキトーに修正して、自分が使う分には困らないレベルで動くようになりました。(id:jun66j5さんありがとうございます。)

自分へのメモとして手順を書きます。

※この記事で使用するこのソースコードhttps://github.com/m-wachi/trac.git)はTrac Projectの公式コードではありませんので注意してください。


Windws環境のtrac 1.0(DBはPostgreSQL)からPython3環境でのtrac(1.2?)へ移行する手順

前提の環境: * python2 (2.7.15) (+pip, virtualenv) * python3 (3.7.2) (+pip, venv) * PostgreSQL 11

python2と3の共存環境の構築 https://qiita.com/segur/items/23f276320216c3aa7cf7

Python2環境で、trac1.0 → trac1.2へのアップグレード

1) 任意の作業ディレクトリ(ここではc:\py_virenv)を作成します
2) コマンドプロンプトを開く
3) virtualenv環境を作成

cd \py_virenv
mkdir trac1.2env
virtualenv trac1.2env 

4) 作った環境に入る

cd trac1.2env
scripts\activate

5) pipでgenshi, trac, psycopg2をインストール

pip install genshi trac psycopg2

6) 既存のDBをバックアップして、新たにインポート

pg_dump -Fc trac > trac.dmp
createdb -O tracuser trac12
pg_restore -d trac12 trac.dmp

※tracuserはtracのDBに接続するときのユーザ

7) tracディレクトリを作成

mkdir trac

8) エクスプローラー等で古いTracのプロジェクトディレクトリをコピー(myproject)

9) conf/trac.iniを編集。[trac]のdatabaseの設定を新たにインポートしたDBに変更

database = postgres://tracuser:tracuser@localhost:5432/trac12

10) データをUpgradeする

trac-admin c:\py_virenv\trac1.2env\trac\myproject upgrade
trac-admin c:\py_virenv\trac1.2env\trac\myproject wiki upgrade

11) python2環境で、trac1.2での動作確認

tracd -p 8000 c:\py_virenv\trac1.2env\trac\myproject

アップグレードしたプロジェクトをPython3環境へ移す

12) python2環境とは別にpython3環境でコマンドプロンプトを開く
13) venv環境を作成

cd \py_virenv
mkdir trac1.2_py3env
python -m venv trac1.2_py3env

14) 作った環境に入る

cd trac1.2_py3env
scripts\activate

15) pipがpython3であることを確認

pip -V

16) genshi, psycopg2をインストール

pip install genshi psycopg2

17) tracソースコードを入れるフォルダを作成

mkdir src
cd src

18) git clone及びcheckoutでpython3対応したソースを入手

git clone https://github.com/m-wachi/trac.git
cd trac
git checkout python3+swig-py3+r1853738

19) pip install -eでtracをソースからインストール

cd ..
pip install -e trac

20) Python2環境で作ったtracのフォルダをコピー

cd ..
mkdir trac
xcopy /e ..\trac1.2env\trac trac

21) --http10オプションを付けてtracd起動

tracd -p 8000 --http10 c:\py_virenv\trac1.2_py3env\trac\myproject