[Python-apps-team] Bug#920977: Breaks loading of db backends in Trac

Andras Korn korn-debbugs at elan.rulez.org
Sun Feb 3 09:22:11 GMT 2019


On Sat, Feb 02, 2019 at 11:00:30AM +0100, Julien Cristau wrote:

Hi,

> > as long as mercurial-common is installed, the postgres and sqlite db backend driver of Trac won't load:
> > 
> > 2019-01-31 08:58:49,372 Trac[loader] ERROR: Skipping "trac.db.postgres = trac.db.postgres_backend": 
> > Traceback (most recent call last):
> >   File "/usr/lib/python2.7/dist-packages/trac/loader.py", line 77, in _load_eggs
> >     entry.load(require=True)
> >   File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2346, in load
> >     return self.resolve()
> >   File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2352, in resolve
> >     module = __import__(self.module_name, fromlist=['__name__'], level=0)
> >   File "/usr/lib/python2.7/dist-packages/hgdemandimport/demandimportpy2.py", line 172, in _demandimport
> >     return _hgextimport(_origimport, name, globals, locals, fromlist, level)
> >   File "/usr/lib/python2.7/dist-packages/hgdemandimport/demandimportpy2.py", line 43, in _hgextimport
> >     return importfunc(name, globals, *args, **kwargs)
> >   File "/usr/lib/python2.7/dist-packages/trac/db/postgres_backend.py", line 46, in <module>
> >     psycopg2_version = get_pkginfo(psycopg).get('version',
> >   File "/usr/lib/python2.7/dist-packages/trac/util/__init__.py", line 806, in get_pkginfo
> >     metadata = 'METADATA' if dist.has_metadata('METADATA') else 'PKG-INFO'
> >   File "/usr/lib/python2.7/dist-packages/hgdemandimport/demandimportpy2.py", line 151, in __getattr__
> >     return getattr(self._module, attr)
> > AttributeError: 'module' object has no attribute 'has_metadata'
> > 2019-01-31 08:58:49,372 Trac[loader] DEBUG: Loading plugin "trac.db.sqlite" from "/usr/lib/python2.7/dist-packages"
> > 2019-01-31 08:58:49,374 Trac[loader] ERROR: Skipping "trac.db.sqlite = trac.db.sqlite_backend": 
> > Traceback (most recent call last):
> >   File "/usr/lib/python2.7/dist-packages/trac/loader.py", line 77, in _load_eggs
> >     entry.load(require=True)
> >   File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2346, in load
> >     return self.resolve()
> >   File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2352, in resolve
> >     module = __import__(self.module_name, fromlist=['__name__'], level=0)
> >   File "/usr/lib/python2.7/dist-packages/hgdemandimport/demandimportpy2.py", line 172, in _demandimport
> >     return _hgextimport(_origimport, name, globals, locals, fromlist, level)
> >   File "/usr/lib/python2.7/dist-packages/hgdemandimport/demandimportpy2.py", line 43, in _hgextimport
> >     return importfunc(name, globals, *args, **kwargs)
> >   File "/usr/lib/python2.7/dist-packages/trac/db/sqlite_backend.py", line 45, in <module>
> >     pysqlite_version_string = get_pkginfo(sqlite).get('version',
> >   File "/usr/lib/python2.7/dist-packages/trac/util/__init__.py", line 806, in get_pkginfo
> >     metadata = 'METADATA' if dist.has_metadata('METADATA') else 'PKG-INFO'
> >   File "/usr/lib/python2.7/dist-packages/hgdemandimport/demandimportpy2.py", line 151, in __getattr__
> >     return getattr(self._module, attr)
> > AttributeError: 'module' object has no attribute 'has_metadata'
> > 
> > I don't understand what the connection is, but removing mercurial-common
> > (which ships
> > /usr/lib/python2.7/dist-packages/hgdemandimport/demandimportpy2.py) helps.
> > 
> As far as I can tell for this to happen something must have called
> hgdemandimport.enable().  Can you track down what that is?

I'm afraid not; not only do I have almost no idea how, I also lack the time
to do it in the short term.

AndrĂ¡s

-- 
            Politics: Poly = many, Tics = Blood sucking parasites.



More information about the Python-apps-team mailing list