TracError: サポートされていないデータベースタイプ 'mysql'

TracError: サポートされていないデータベースタイプ 'mysql'

私の環境:

Debian: 9.3
trac/stable,now 1.2+dfsg-1 all [installed]
python-mysqldb/stable,now 1.3.7-1.1 amd64 [installed]

フォローするtrac手動で次のトレースを実行してインポートtrac-admin /usr/share/trac initenvします。

Creating and Initializing Project
Initenv for '/usr/share/trac' failed. 
Failed to create environment.
Unsupported database type "mysql"
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/trac/admin/console.py", line 497, in do_initenv
    options=options)
  File "/usr/lib/python2.7/dist-packages/trac/core.py", line 128, in __call__
    self.__init__(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/trac/env.py", line 299, in __init__
    self.create(options)
  File "/usr/lib/python2.7/dist-packages/trac/env.py", line 591, in create
    DatabaseManager(self).init_db()
  File "/usr/lib/python2.7/dist-packages/trac/db/api.py", line 337, in init_db
    connector, args = self.get_connector()
  File "/usr/lib/python2.7/dist-packages/trac/db/api.py", line 606, in get_connector
    scheme=scheme))
TracError: Unsupported database type "mysql"

エラーが発生したようです。/usr/lib/python2.7/dist-packages/trac/db/mysql_backend.pyインポートされませんでした(MySQLConnector.get_supported_schemes()実行されていません)。問題は、このファイルをロードするためのコードで参照が見つからないことです。インターフェースだけが見つかりますIDatabaseConnector

postgresバックエンド/usr/lib/python2.7/dist-packages/trac/db/postgres_backend.pyもロードされませんが、一度インストールすると魔法python-psycopg2のようにロードが開始されます。どうやって?

誰かがここでPythonの魔法とmysqlバックエンドを操作する方法を説明できますか?

答え1

最も簡単な回避策は、インストール後に/usr/lib/python2.7/dist-packages/Trac-1.2.egg-info/entry_points.txtを編集し、ここから[mysql]サフィックスを削除することです:trac.db。 mysql = trac.db .mysql_backend[mysql]

答え2

私は最近Ubuntu 18.04にアップグレードしましたが、デバッグ中にpython-pymysqlパッケージが自動的に削除されたことがわかりました(アップグレードには実際に手動で解決する必要があるいくつかの破損した依存関係の問題がありました)。後ろに

$ apt install python-pymysql

tracが再び動作を開始します。

答え3

同じ問題が発生した後、次の方法が機能しました。

$ pip install MySQL-python

もちろん、これはvirutalenvを使用しています。

cd /home/user/dev
mkdir TracEnv
mkdir TracEnv/TracProject
cd ./TracEnv/
virtualenv venv
source ./venv/bin/activate
pip install trac
pip install MySQL-python
trac-admin /home/user/dev/TracEnv/TracProject initenv

関連情報