You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Installing a user-side cppyy (no virtualenv) breaks the python based ROOT tools.
So, i would like to be possible to have a user installed cppyy without this having an impact on ROOT installation
Optional: share how it could be improved
i was wondering if, given the special local only usage of a private/local version of cppyy, if this could be encapsulated somehow, so ROOT would use only it’s own version in such a way that is does not see any other cppyy version (even if discovered), and also the private cppyy modules are put in a place that would not be seen by anything outside ROOT as it’s not usable anyway:
[Thursday 06.04.23 21:38 adrian@hal] ~ $
python3
Python 3.11.2 (main, Feb 8 2023, 00:00:00) [GCC 12.2.1 20221121 (Red Hat 12.2.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cppyy
/usr/lib64/python3.11/site-packages/cppyy_backend/loader.py:90: UserWarning: No precompiled header available (/usr/lib64/python3.11/site-packages/cppyy_backend/etc not writable); this may impact performance.
warnings.warn('No precompiled header available (%s); this may impact performance.' % msg)
/usr/lib64/python3.11/site-packages/cppyy/__init__.py:266: UserWarning: CPyCppyy API path not found (tried: /usr/include); set CPPYY_API_PATH to fix
warnings.warn("CPyCppyy API path not found (tried: %s); set CPPYY_API_PATH to fix" % os.path.dirname(cpycppyy_path))
To Reproduce
rootls
usage: rootls [-h] [-1] [-l] [-t] FILE [FILE ...]
rootls: error: the following arguments are required: FILE
pip3 install --user cppyy
rootls
Traceback (most recent call last):
File "/usr/bin/rootls", line 12, in <module>
import cmdLineUtils
File "/usr/share/root/cli/cmdLineUtils.py", line 81, in <module>
import ROOT
File "/usr/lib64/python3.11/site-packages/ROOT/__init__.py", line 25, in <module>
cppyy.gbl.gROOT.SetBatch(False)
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TROOT' object has no attribute 'SetBatch'. Did you mean: 'GetPath'?
Explain what you would like to see improved
Installing a user-side cppyy (no virtualenv) breaks the python based ROOT tools.
So, i would like to be possible to have a user installed cppyy without this having an impact on ROOT installation
Optional: share how it could be improved
i was wondering if, given the special local only usage of a private/local version of cppyy, if this could be encapsulated somehow, so ROOT would use only it’s own version in such a way that is does not see any other cppyy version (even if discovered), and also the private cppyy modules are put in a place that would not be seen by anything outside ROOT as it’s not usable anyway:
To Reproduce
Setup
Fedora 37
dnf install
1st posted in root-forum: https://root-forum.cern.ch/t/cppyy-user-side-breaks-root/54393
The text was updated successfully, but these errors were encountered: