Ennosigaeon / xautoml

XAutoML: A Visual Analytics Tool for Understanding and Validating Automated Machine Learning
BSD 3-Clause "New" or "Revised" License
32 stars 7 forks source link

Could not build wheels for xautoml #2

Closed lenngri closed 2 years ago

lenngri commented 2 years ago

Hello @Ennosigaeon! Thank you for publicly providing this project, xautoml seems to be a very powerful tool that I'd like to try out myself.

When trying to install it, I got this error message that I can't resolve and I was hoping you could have an idea how to avoid it:

$ pip install xautoml
[...]
Building wheels for collected packages: xautoml, pyrfr
  Building wheel for xautoml (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for xautoml (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [79 lines of output]
      running bdist_wheel
      running ensure_targets
      running build
      running build_py
      creating build
      creating build\lib
      creating build\lib\xautoml
      copying xautoml\adapter.py -> build\lib\xautoml
      copying xautoml\config_similarity.py -> build\lib\xautoml
      copying xautoml\ensemble.py -> build\lib\xautoml
      copying xautoml\fake.py -> build\lib\xautoml
      copying xautoml\graph_similarity.py -> build\lib\xautoml
      copying xautoml\handlers.py -> build\lib\xautoml
      copying xautoml\hp_importance.py -> build\lib\xautoml
      copying xautoml\main.py -> build\lib\xautoml
      copying xautoml\models.py -> build\lib\xautoml
      copying xautoml\model_details.py -> build\lib\xautoml
      copying xautoml\output.py -> build\lib\xautoml
      copying xautoml\roc_auc.py -> build\lib\xautoml
      copying xautoml\_helper.py -> build\lib\xautoml
      copying xautoml\_version.py -> build\lib\xautoml
      copying xautoml\__init__.py -> build\lib\xautoml
      creating build\lib\xautoml\tests
      copying xautoml\tests\test_config_similarity.py -> build\lib\xautoml\tests
      copying xautoml\tests\test_ensemble_inspection.py -> build\lib\xautoml\tests
      copying xautoml\tests\test_feature_importance.py -> build\lib\xautoml\tests
      copying xautoml\tests\test_hpimportance.py -> build\lib\xautoml\tests
      copying xautoml\tests\test_main.py -> build\lib\xautoml\tests
      copying xautoml\tests\test_model_details.py -> build\lib\xautoml\tests
      copying xautoml\tests\test_output.py -> build\lib\xautoml\tests
      copying xautoml\tests\test_roc_curve.py -> build\lib\xautoml\tests
      copying xautoml\tests\test_sub_pipeline.py -> build\lib\xautoml\tests
      copying xautoml\tests\__init__.py -> build\lib\xautoml\tests
      creating build\lib\xautoml\util
      copying xautoml\util\async_queue.py -> build\lib\xautoml\util
      copying xautoml\util\auto_sklearn.py -> build\lib\xautoml\util
      copying xautoml\util\config.py -> build\lib\xautoml\util
      copying xautoml\util\constants.py -> build\lib\xautoml\util
      copying xautoml\util\datasets.py -> build\lib\xautoml\util
      copying xautoml\util\flaml.py -> build\lib\xautoml\util
      copying xautoml\util\mlinsights.py -> build\lib\xautoml\util
      copying xautoml\util\pipeline_utils.py -> build\lib\xautoml\util
      copying xautoml\util\__init__.py -> build\lib\xautoml\util
      running egg_info
      writing xautoml.egg-info\PKG-INFO
      writing dependency_links to xautoml.egg-info\dependency_links.txt
      writing requirements to xautoml.egg-info\requires.txt
      writing top-level names to xautoml.egg-info\top_level.txt
      reading manifest file 'xautoml.egg-info\SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no files found matching 'jupyter-config\xautoml.json'
      no previously-included directories found matching '**\node_modules'
      no previously-included directories found matching 'lib'
      warning: no previously-included files matching '*~' found anywhere in distribution
      warning: no previously-included files matching '*.pyc' found anywhere in distribution
      warning: no previously-included files matching '*.pyo' found anywhere in distribution
      warning: no previously-included files matching '.git' found anywhere in distribution
      warning: no previously-included files matching '.ipynb_checkpoints' found anywhere in distribution
      adding license file 'LICENSE'
      writing manifest file 'xautoml.egg-info\SOURCES.txt'
      creating build\lib\xautoml\labextension
      copying xautoml\labextension\build_log.json -> build\lib\xautoml\labextension
      copying xautoml\labextension\package.json -> build\lib\xautoml\labextension
      creating build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\lib_index_js.501b1a62f9c38ddd812b.js -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\lib_index_js.501b1a62f9c38ddd812b.js.map -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\lib_index_js.502fd3a9cc6c92d6f591.js -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\lib_index_js.502fd3a9cc6c92d6f591.js.map -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\lib_index_js.5fe887d7b7a8ac72fc36.js -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\lib_index_js.5fe887d7b7a8ac72fc36.js.map -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\lib_index_js.8f01bcbb99c2065d2192.js -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\lib_index_js.8f01bcbb99c2065d2192.js.map -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\lib_index_js.9b5313ccecf3b93fdb20.js -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\lib_index_js.9b5313ccecf3b93fdb20.js.map -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\lib_index_js.db69110a493cf4705cb0.js -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\lib_index_js.db69110a493cf4705cb0.js.map -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\node_modules_babel_runtime_helpers_esm_assertThisInitialized_js-node_modules_babel_runtime_he-36f31a.9e464fbf6e3483c2e9ab.js -> build\lib\xautoml\labextension\static
      copying xautoml\labextension\static\node_modules_babel_runtime_helpers_esm_assertThisInitialized_js-node_modules_babel_runtime_he-36f31a.9e464fbf6e3483c2e9ab.js.map -> build\lib\xautoml\labextension\static
      error: could not create 'build\lib\xautoml\labextension\static\node_modules_babel_runtime_helpers_esm_assertThisInitialized_js-node_modules_babel_runtime_he-36f31a.9e464fbf6e3483c2e9ab.js.map': No such file or directory
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for xautoml
  Building wheel for pyrfr (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [7 lines of output]
      running bdist_wheel
      running build
      running build_ext
      building 'pyrfr._regression' extension
      swigging pyrfr/regression.i to pyrfr/regression_wrap.cpp
      swig.exe -python -c++ -modern -py3 -features nondynamic -I./include -o pyrfr/regression_wrap.cpp pyrfr/regression.i
      error: command 'swig.exe' failed: None
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pyrfr
  Running setup.py clean for pyrfr
Failed to build xautoml pyrfr
ERROR: Could not build wheels for xautoml, which is required to install pyproject.toml-based projects

I am running on Windows 10 and use Python 3.9.5. Thank you in advance! :)

Ennosigaeon commented 2 years ago

Hey, thanks for giving it a try.

There are two different errors. The first one is related to the JupyterLab Plugin build. I was not able to reproduce that issue using Ubuntu and python 3.9.7. I will try to debug it using Windows tomorrow.

Regarding the second issue: To compile pyrfr, you need to install swig. Did you setup swig before installing?

lenngri commented 2 years ago

Thank you for the hint! Installing swig solved both errors, so no need to tackle the other one separately. :)