abess-team/abess

Version 0.4.7 crashing when LinearRegression.fit() invoked

MattWenham opened this issue · 3 comments

This is possibly related to issue #496.

Describe the bug
Multiple attempts to use LinearRegression.fit() in version 0.4.7 appears to cause a crash. Unlike with #496, we are unable to build from source.

Code for Reproduction
Any non-trivial invocation of LinearRegression.fit().
Uninstalling and then attempting to reinstall from source using pip install abess==0.4.7 --no-binary=abess results in an error:

  /tmp/pip-install-wejh_wj5/abess_7276a548a8a440aeae70ea9965e1f2b1/src/pywrap.cpp:1:10: fatal error: pybind11/eigen.h: No such file or directory
      1 | #include <pybind11/eigen.h>
        |          ^~~~~~~~~~~~~~~~~~
  compilation terminated.

Expected behavior
LinearRegression.fit() should run, and package should compile from source.

Desktop (please complete the following information):

  • OS: Linux-5.15.90.1-microsoft-standard-WSL2
  • Python Version: 3.9.16
  • Package Version: 0.4.7

Current Workaround
Compile version 0.4.6 from source.

On Linux-5.15.0-1039-azure (i.e. not WSL) LinearRegression.fit() appears to run, but compilation still crashes with the same error.

My apologies for effectively putting two bugs into one issue.

Hi @MattWenham, it's a pleasure to answer your question. Based on your information, the compilation error was caused by missing pybind11, a compiling tool that should be installed before installing abess from the source. This code may be helpful:

pip install pybind11[global]

The detailed installation way can be found in the documentation.
Please message us if you have any more questions.

Thank you for your reply.

It turns out that my pybind installation is corrupted somehow, as both pip and conda see it as installed, but when I try to uninstall with pip, it can't be found to remove it.

I can compile 0.4.7 okay in a fresh environment.