wlav / cppyy

Other
400 stars 41 forks source link

Issue installing 2.3.1 on python3.9 #53

Closed kunitoki closed 2 years ago

kunitoki commented 2 years ago
$ pip3 install "cppyy>=2.3.1"
DEPRECATION: Configuring installation scheme with distutils config files is deprecated and will no longer work in the near future. If you are using a Homebrew or Linuxbrew Python, please see discussion at https://github.com/Homebrew/homebrew-core/issues/76621
Collecting cppyy>=2.3.1
  Downloading cppyy-2.3.1.tar.gz (19 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/local/opt/python@3.9/bin/python3.9 /private/var/folders/76/60fp513x38991r0s6cg_npcw0000gp/T/pip-standalone-pip-j0j936i8/__env_pip__.zip/pip install --ignore-installed --no-user --prefix /private/var/folders/76/60fp513x38991r0s6cg_npcw0000gp/T/pip-build-env-pbp4wskl/normal --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- cppyy-backend==1.14.8 cppyy-cling==6.25.3
       cwd: None
  Complete output (76 lines):
  Collecting cppyy-backend==1.14.8
    Downloading cppyy-backend-1.14.8.tar.gz (33 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
    Preparing metadata (pyproject.toml): started
    Preparing metadata (pyproject.toml): finished with status 'done'
  Collecting cppyy-cling==6.25.3
    Using cached cppyy_cling-6.25.3-py2.py3-none-macosx_10_12_x86_64.whl (23.1 MB)
  Building wheels for collected packages: cppyy-backend
    Building wheel for cppyy-backend (pyproject.toml): started
    Building wheel for cppyy-backend (pyproject.toml): finished with status 'error'
    ERROR: Command errored out with exit status 1:
     command: /usr/local/opt/python@3.9/bin/python3.9 /var/folders/76/60fp513x38991r0s6cg_npcw0000gp/T/tmphfl4ckgx_in_process.py build_wheel /var/folders/76/60fp513x38991r0s6cg_npcw0000gp/T/tmp6jkb4___
         cwd: /private/var/folders/76/60fp513x38991r0s6cg_npcw0000gp/T/pip-install-evmuxc4w/cppyy-backend_a5298164ce644725b0090e2fea602336
    Complete output (53 lines):
    running bdist_wheel
    running build
    running build_ext
    creating build/temp.macosx-11-x86_64-3.9/src
    clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -I/usr/local/opt/openssl@1.1/include -I/usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cppyy_backend/include -I/usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c src/clingwrapper.cxx -o build/temp.macosx-11-x86_64-3.9/src/clingwrapper.o -O2 -stdlib=libc++ -pthread -std=c++17 -m64
    src/clingwrapper.cxx:362:48: error: too many arguments to function call, expected single argument 'code', have 2 arguments
        return gInterpreter->Declare(code.c_str(), silent);
               ~~~~~~~~~~~~~~~~~~~~~               ^~~~~~
    /usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cppyy_backend/include/TInterpreter.h:149:21: note: 'Declare' declared here
       virtual Bool_t   Declare(const char* code) = 0;
                        ^
    src/clingwrapper.cxx:782:61: error: too many arguments to function call, expected 1, have 2
        wrap->fFaceptr = gInterpreter->CallFunc_IFacePtr(callf, as_iface);
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        ^~~~~~~~
    /usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cppyy_backend/include/TInterpreter.h:302:31: note: 'CallFunc_IFacePtr' declared here
       virtual CallFuncIFacePtr_t CallFunc_IFacePtr(CallFunc_t * /* func */) const {return CallFuncIFacePtr_t();}
                                  ^
    src/clingwrapper.cxx:821:84: error: no member named 'fDirect' in 'CppyyLegacy::TInterpreter::CallFuncIFacePtr_t'
        return (!is_direct && wrap->fFaceptr.fGeneric) || (is_direct && wrap->fFaceptr.fDirect);
                                                                        ~~~~~~~~~~~~~~ ^
    src/clingwrapper.cxx:840:48: error: no member named 'fDirect' in 'CppyyLegacy::TInterpreter::CallFuncIFacePtr_t'
            const auto& fgen = is_direct ? faceptr.fDirect : faceptr.fGeneric;
                                           ~~~~~~~ ^
    src/clingwrapper.cxx:1151:41: error: no matching member function for call to 'ClassInfo_Factory'
            ClassInfo_t* ci = gInterpreter->ClassInfo_Factory(
                              ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
    /usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cppyy_backend/include/TInterpreter.h:315:26: note: candidate function not viable: requires at most 1 argument, but 2 were provided
       virtual ClassInfo_t  *ClassInfo_Factory(Bool_t /*all*/ = kTRUE) const = 0;
                             ^
    /usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cppyy_backend/include/TInterpreter.h:316:26: note: candidate function not viable: requires 1 argument, but 2 were provided
       virtual ClassInfo_t  *ClassInfo_Factory(ClassInfo_t * /* cl */) const = 0;
                             ^
    /usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cppyy_backend/include/TInterpreter.h:317:26: note: candidate function not viable: requires 1 argument, but 2 were provided
       virtual ClassInfo_t  *ClassInfo_Factory(const char * /* name */) const = 0;
                             ^
    /usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cppyy_backend/include/TInterpreter.h:318:26: note: candidate function not viable: requires single argument 'declid', but 2 arguments were provided
       virtual ClassInfo_t  *ClassInfo_Factory(DeclId_t declid) const = 0;
                             ^
    src/clingwrapper.cxx:1435:59: error: too many arguments to function call, expected single argument 'code', have 2 arguments
                    gInterpreter->Declare(stmt.str().c_str(), true /* silent */);
                    ~~~~~~~~~~~~~~~~~~~~~                     ^~~~
    /usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cppyy_backend/include/TInterpreter.h:149:21: note: 'Declare' declared here
       virtual Bool_t   Declare(const char* code) = 0;
                        ^
    src/clingwrapper.cxx:2016:26: error: no member named 'GetTagDeclId' in 'CppyyLegacy::TDataMember'; did you mean 'GetDeclId'?
            auto declid = m->GetTagDeclId();
                             ^~~~~~~~~~~~
                             GetDeclId
    /usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/cppyy_backend/include/TDataMember.h:67:19: note: 'GetDeclId' declared here
       DeclId_t       GetDeclId() const;
                      ^
    7 errors generated.
    error: command '/usr/local/opt/ccache/libexec/clang' failed with exit code 1
    ----------------------------------------
    ERROR: Failed building wheel for cppyy-backend
  Failed to build cppyy-backend
  ERROR: Could not build wheels for cppyy-backend, which is required to install pyproject.toml-based projects
  ----------------------------------------
wlav commented 2 years ago

Which version of pip? Seems that the project.toml file is not respected and the cppyy-backend package is being build against an installed cppyy-cling, not one selected in the .toml in a separate build environment (PEP517). Upgrading pip should do the trick:

$ python -m pip install pip --upgrade

Alternative solution is to uninstall cppyy-cling first, but if this is really due to it being an old pip, it would also need to be reinstalled explicilty before installing cppyy.

$ python -m pip uninstall cppyy-cling
$ python -m pip install cppyy-cling
$ python -m pip install cppyy
kunitoki commented 2 years ago

Hey ! Yeah i think i had a dangling cppyy-cling in my site-packages. Fixed now thank you !