TracError: tipo de banco de dados não suportado “mysql”

1

Meu ambiente:

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

Eu sigo o manual trac , execuo trac-admin /usr/share/trac initenv e obtenho este traço:

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"

Achei que o erro se deve a /usr/lib/python2.7/dist-packages/trac/db/mysql_backend.py não sendo importado (e MySQLConnector.get_supported_schemes() nem sequer é executado). O problema é que não consigo encontrar nenhuma referência no código para carregar este arquivo. Eu só consigo encontrar a interface IDatabaseConnector .

O backend postgres /usr/lib/python2.7/dist-packages/trac/db/postgres_backend.py também não carrega, mas depois de instalar o python-psycopg2 , ele magicamente começa a carregar. Como assim?

Alguém pode explicar a mágica python em ação aqui e como posso fazer com que o backend mysql funcione?

    
por Davor Josipovic 16.01.2018 / 20:39

3 respostas

0

A solução mais fácil é editar /usr/lib/python2.7/dist-packages/Trac-1.2.egg-info/entry_points.txt depois de instalar e remover o sufixo [mysql] de: trac.db.mysql = trac.db.mysql_backend [mysql]

    
por 18.02.2019 / 21:37
0

Eu recentemente atualizei para o Ubuntu 18.04 e descobri após a depuração que o pacote python-pymysql era de alguma forma autorimido (a atualização realmente tinha alguns problemas de dependência quebrados que tinham que ser resolvidos manualmente). Depois

$ apt install python-pymysql

o trac estava funcionando novamente.

    
por 04.05.2019 / 21:50
0

Depois de experimentar esse mesmo problema, o seguinte funcionou.

$ pip install MySQL-python

Claro, isso está usando um 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
    
por 19.02.2018 / 17:51

Tags