Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python bindings work only with sources present. #106

Closed
vvolkl opened this issue Aug 17, 2020 · 5 comments · Fixed by #146
Closed

Python bindings work only with sources present. #106

vvolkl opened this issue Aug 17, 2020 · 5 comments · Fixed by #146

Comments

@vvolkl
Copy link

vvolkl commented Aug 17, 2020

When building LCIO and removing the sources, all python imports fail with many error messages of the type:

Error in <TClass::LoadClassInfo>: no interpreter information for class IMPL::TrackImpl is available even though it has a TClass initialization routine.
IMPL dictionary payload:5:10: fatal error: 'include/IMPL/AccessChecked.h' file not found
#include "include/IMPL/AccessChecked.h"

This is a bit reminiscent of AIDASoft/DD4hep#565. @andresailer, maybe your fix works here as well?

@andresailer
Copy link
Contributor

The fix there was to have all the files available.

@rete
Copy link
Contributor

rete commented Sep 18, 2020

@andresailer @vvolkl Is this fixed by now?

@tmadlener
Copy link
Contributor

Potentially related: #136

@tmadlener
Copy link
Contributor

This still seems to be an issue if one actually tries to use the python bindings

from pyLCIO import IOIMPL

reader = IOIMPL.LCFactory.getInstance().createLCReader()

fails with the following error

In file included from IOIMPL dictionary payload:9:
/cvmfs/sw.hsf.org/spackages/linux-centos7-x86_64/gcc-8.3.0/lcio-2.16.1-nqt55lk5fmwwer334skcjgjcihnbghmr/include/IOIMPL/LCEventLazyImpl.h:6:10: fatal error: 'SIO/SIOHandlerMgr.h' file not found
#include "SIO/SIOHandlerMgr.h"
         ^~~~~~~~~~~~~~~~~~~~~
Error in <TInterpreter::AutoParse>: Error parsing payload code for class IOIMPL::LCFactory with content:

[...]

This only seems to happen with out of source installations (i.e. spack). Installations with iLCSoft do not have this problem, although the <install-prefix>/include/SIO directory is empty in both cases.

@tmadlener
Copy link
Contributor

tmadlener commented Jul 26, 2021

I have checked that this also happens without spack and it does (if the sources from which LCIO is built are (re)moved). The two headers: SIOHandlerMgr.h and SIOObjectHandler.h need to be present in <install-prefix>/include/SIO for the above example to work.

Should we try and fix these installation issues in LCIO rather than in the spack recipe for LCIO?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants