scikit-learn-contrib / py-earth

A Python implementation of Jerome Friedman's Multivariate Adaptive Regression Splines
http://contrib.scikit-learn.org/py-earth/
BSD 3-Clause "New" or "Revised" License
458 stars 121 forks source link

Instalation Fails python3.8 #210

Open lazarod09 opened 3 years ago

lazarod09 commented 3 years ago

pip install sklearn-contrib-py-earth Collecting sklearn-contrib-py-earth Using cached sklearn-contrib-py-earth-0.1.0.tar.gz (1.0 MB) Requirement already satisfied: scipy>=0.16 in /home/tnt/PycharmProjects/mars/lib/python3.8/site-packages (from sklearn-contrib-py-earth) (1.6.0) Requirement already satisfied: scikit-learn>=0.16 in /home/tnt/PycharmProjects/mars/lib/python3.8/site-packages (from sklearn-contrib-py-earth) (0.24.1) Requirement already satisfied: six in /home/tnt/PycharmProjects/mars/lib/python3.8/site-packages (from sklearn-contrib-py-earth) (1.15.0) Requirement already satisfied: numpy>=1.13.3 in /home/tnt/PycharmProjects/mars/lib/python3.8/site-packages (from scikit-learn>=0.16->sklearn-contrib-py-earth) (1.20.1) Requirement already satisfied: threadpoolctl>=2.0.0 in /home/tnt/PycharmProjects/mars/lib/python3.8/site-packages (from scikit-learn>=0.16->sklearn-contrib-py-earth) (2.1.0) Requirement already satisfied: joblib>=0.11 in /home/tnt/PycharmProjects/mars/lib/python3.8/site-packages (from scikit-learn>=0.16->sklearn-contrib-py-earth) (1.0.1) Using legacy 'setup.py install' for sklearn-contrib-py-earth, since package 'wheel' is not installed. Installing collected packages: sklearn-contrib-py-earth Running setup.py install for sklearn-contrib-py-earth ... error ERROR: Command errored out with exit status 1: command: /home/tnt/PycharmProjects/mars/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-tpbrbmff/sklearn-contrib-py-earth_55157342455949e0ab32713d54e2384c/setup.py'"'"'; file='"'"'/tmp/pip-install-tpbrbmff/sklearn-contrib-py-earth_55157342455949e0ab32713d54e2384c/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-1nkxfk0o/install-record.txt --single-version-externally-managed --compile --install-headers /home/tnt/PycharmProjects/mars/include/site/python3.8/sklearn-contrib-py-earth cwd: /tmp/pip-install-tpbrbmff/sklearn-contrib-py-earth_55157342455949e0ab32713d54e2384c/ Complete output (142 lines): running install running build running build_py creating build creating build/lib.linux-x86_64-3.8 creating build/lib.linux-x86_64-3.8/pyearth copying pyearth/earth.py -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/export.py -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_version.py -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/init.py -> build/lib.linux-x86_64-3.8/pyearth creating build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/test_forward.py -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/test_util.py -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/test_qr.py -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/test_export.py -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/test_knot_search.py -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/testing_utils.py -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/test_pruning.py -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/test_earth.py -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/init.py -> build/lib.linux-x86_64-3.8/pyearth/test creating build/lib.linux-x86_64-3.8/pyearth/test/record copying pyearth/test/record/test_forward_pass.py -> build/lib.linux-x86_64-3.8/pyearth/test/record copying pyearth/test/record/test_pruning_pass.py -> build/lib.linux-x86_64-3.8/pyearth/test/record copying pyearth/test/record/init.py -> build/lib.linux-x86_64-3.8/pyearth/test/record creating build/lib.linux-x86_64-3.8/pyearth/test/basis copying pyearth/test/basis/test_missingness.py -> build/lib.linux-x86_64-3.8/pyearth/test/basis copying pyearth/test/basis/test_hinge.py -> build/lib.linux-x86_64-3.8/pyearth/test/basis copying pyearth/test/basis/base.py -> build/lib.linux-x86_64-3.8/pyearth/test/basis copying pyearth/test/basis/test_smoothed_hinge.py -> build/lib.linux-x86_64-3.8/pyearth/test/basis copying pyearth/test/basis/test_basis.py -> build/lib.linux-x86_64-3.8/pyearth/test/basis copying pyearth/test/basis/test_linear.py -> build/lib.linux-x86_64-3.8/pyearth/test/basis copying pyearth/test/basis/test_constant.py -> build/lib.linux-x86_64-3.8/pyearth/test/basis copying pyearth/test/basis/init.py -> build/lib.linux-x86_64-3.8/pyearth/test/basis running egg_info writing sklearn_contrib_py_earth.egg-info/PKG-INFO writing dependency_links to sklearn_contrib_py_earth.egg-info/dependency_links.txt writing requirements to sklearn_contrib_py_earth.egg-info/requires.txt writing top-level names to sklearn_contrib_py_earth.egg-info/top_level.txt reading manifest file 'sklearn_contrib_py_earth.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'pyearth/test/pathological_data' writing manifest file 'sklearn_contrib_py_earth.egg-info/SOURCES.txt' copying pyearth/_basis.c -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_basis.pxd -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_forward.c -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_forward.pxd -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_knot_search.c -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_knot_search.pxd -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_pruning.c -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_pruning.pxd -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_qr.c -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_qr.pxd -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_record.c -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_record.pxd -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_types.c -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_types.pxd -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_util.c -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/_util.pxd -> build/lib.linux-x86_64-3.8/pyearth copying pyearth/test/earth_linvars_regress.txt -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/earth_regress.txt -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/earth_regress_missing_data.txt -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/earth_regress_smooth.txt -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/forward_regress.txt -> build/lib.linux-x86_64-3.8/pyearth/test copying pyearth/test/test_data.csv -> build/lib.linux-x86_64-3.8/pyearth/test UPDATING build/lib.linux-x86_64-3.8/pyearth/_version.py set build/lib.linux-x86_64-3.8/pyearth/_version.py to '0.1.0' running build_ext building 'pyearth._util' extension creating build/temp.linux-x86_64-3.8 creating build/temp.linux-x86_64-3.8/pyearth x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/tnt/PycharmProjects/mars/lib/python3.8/site-packages/numpy/core/include -I/home/tnt/PycharmProjects/mars/include -I/usr/include/python3.8 -c pyearth/_util.c -o build/temp.linux-x86_64-3.8/pyearth/_util.o In file included from /home/tnt/PycharmProjects/mars/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h:1944, from /home/tnt/PycharmProjects/mars/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:12, from /home/tnt/PycharmProjects/mars/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:4, from pyearth/_util.c:495: /home/tnt/PycharmProjects/mars/lib/python3.8/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp] 17 | #warning "Using deprecated NumPy API, disable it with " \ | ^~~ pyearth/_util.c: In function ‘PyxExceptionSave’: pyearth/_util.c:8071:21: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’? 8071 | type = tstate->exc_type; | ^~~~ | curexc_type pyearth/_util.c:8072:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’? 8072 | value = tstate->exc_value; | ^~~~~ | curexc_value pyearth/_util.c:8073:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’? 8073 | *tb = tstate->exc_traceback; | ^~~~~ | curexc_traceback pyearth/_util.c: In function ‘PyxExceptionReset’: pyearth/_util.c:8080:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’? 8080 | tmp_type = tstate->exc_type; | ^~~~ | curexc_type pyearth/_util.c:8081:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’? 8081 | tmp_value = tstate->exc_value; | ^~~~~ | curexc_value pyearth/_util.c:8082:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’? 8082 | tmp_tb = tstate->exc_traceback; | ^~~~~ | curexc_traceback pyearth/_util.c:8083:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’? 8083 | tstate->exc_type = type; | ^~~~ | curexc_type pyearth/_util.c:8084:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’? 8084 | tstate->exc_value = value; | ^~~~~ | curexc_value pyearth/_util.c:8085:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’? 8085 | tstate->exc_traceback = tb; | ^~~~~ | curexc_traceback pyearth/_util.c: In function ‘PyxGetException’: pyearth/_util.c:8140:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’? 8140 | tmp_type = tstate->exc_type; | ^~~~ | curexc_type pyearth/_util.c:8141:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’? 8141 | tmp_value = tstate->exc_value; | ^~~~~ | curexc_value pyearth/_util.c:8142:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’? 8142 | tmp_tb = tstate->exc_traceback; | ^~~~~ | curexc_traceback pyearth/_util.c:8143:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’? 8143 | tstate->exc_type = local_type; | ^~~~ | curexc_type pyearth/_util.c:8144:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’? 8144 | tstate->exc_value = local_value; | ^~~~~ | curexc_value pyearth/_util.c:8145:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’? 8145 | tstate->exc_traceback = local_tb; | ^~~~~ | curexc_traceback error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

ERROR: Command errored out with exit status 1: /home/tnt/PycharmProjects/mars/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-tpbrbmff/sklearn-contrib-py-earth_55157342455949e0ab32713d54e2384c/setup.py'"'"'; file='"'"'/tmp/pip-install-tpbrbmff/sklearn-contrib-py-earth_55157342455949e0ab32713d54e2384c/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-1nkxfk0o/install-record.txt --single-version-externally-managed --compile --install-headers /home/tnt/PycharmProjects/mars/include/site/python3.8/sklearn-contrib-py-earth Check the logs for full command output.

kevin-dietz commented 3 years ago

What are you trying to do here? Install the forked version of scikit-learn that's used for py-earth? Or are you trying to install py-earth itself?

shidingan commented 3 years ago

Same error here. I tried both:

  1. sudo pip install sklearn-contrib-py-earth (as recommended on https://machinelearningmastery.com/multivariate-adaptive-regression-splines-mars-in-python/ to install pyearth, not sklearn as far as I understand) => fail with the error above
  2. git clone git://github.com/scikit-learn-contrib/py-earth.git && sudo python setup.py install --cythonize => fail with : ... building 'pyearth._util' extension creating build/temp.linux-x86_64-3.8 creating build/temp.linux-x86_64-3.8/pyearth x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/lib/python3/dist-packages/numpy/core/include -I/usr/include/python3.8 -c pyearth/_util.c -o build/temp.linux-x86_64-3.8/pyearth/_util.o In file included from /usr/lib/python3/dist-packages/numpy/core/include/numpy/ndarraytypes.h:1832, from /usr/lib/python3/dist-packages/numpy/core/include/numpy/ndarrayobject.h:12, from /usr/lib/python3/dist-packages/numpy/core/include/numpy/arrayobject.h:4, from pyearth/_util.c:495: /usr/lib/python3/dist-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp] 17 | #warning "Using deprecated NumPy API, disable it with " \ | ^~~ pyearth/_util.c: In function ‘PyxExceptionSave’: pyearth/_util.c:8071:21: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’? 8071 | type = tstate->exc_type; | ^~~~ | curexc_type pyearth/_util.c:8072:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’? 8072 | value = tstate->exc_value; | ^~~~~ | curexc_value pyearth/_util.c:8073:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’? 8073 | *tb = tstate->exc_traceback; | ^~~~~ | curexc_traceback pyearth/_util.c: In function ‘PyxExceptionReset’: pyearth/_util.c:8080:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’? 8080 | tmp_type = tstate->exc_type; | ^~~~ | curexc_type pyearth/_util.c:8081:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’? 8081 | tmp_value = tstate->exc_value; | ^~~~~ | curexc_value pyearth/_util.c:8082:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’? 8082 | tmp_tb = tstate->exc_traceback; | ^~~~~ | curexc_traceback pyearth/_util.c:8083:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’? 8083 | tstate->exc_type = type; | ^~~~ | curexc_type pyearth/_util.c:8084:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’? 8084 | tstate->exc_value = value; | ^~~~~ | curexc_value pyearth/_util.c:8085:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’? 8085 | tstate->exc_traceback = tb; | ^~~~~ | curexc_traceback pyearth/_util.c: In function ‘PyxGetException’: pyearth/_util.c:8140:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’? 8140 | tmp_type = tstate->exc_type; | ^~~~ | curexc_type pyearth/_util.c:8141:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’? 8141 | tmp_value = tstate->exc_value; | ^~~~~ | curexc_value pyearth/_util.c:8142:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’? 8142 | tmp_tb = tstate->exc_traceback; | ^~~~~ | curexc_traceback pyearth/_util.c:8143:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’? 8143 | tstate->exc_type = local_type; | ^~~~ | curexc_type pyearth/_util.c:8144:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’? 8144 | tstate->exc_value = local_value; | ^~~~~ | curexc_value pyearth/_util.c:8145:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’? 8145 | tstate->exc_traceback = local_tb; | ^~~~~ | curexc_traceback error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

I'd like to install py-earth but it fails whatever the method chosen to install it. Config. Python 3.8.6, GCC 10.2.0, sklearn 0.24.2

kevin-dietz commented 3 years ago

@shidingan Looks to be a cython issue. Ensure you have a version of cython installed that is compatible with Python 3.8

shidingan commented 3 years ago

Should not be a problem of Cython version IMO because it is the version provided by my distrib with python3: cython 0.29.21 which is compatible with python3.8...

kevin-dietz commented 3 years ago

If you believe all your dependencies are correct, you can try installing from from the issue 191 branch:

git clone -b issue191 git://github.com/jcrudy/py-earth.git
cd py-earth
python setup.py install --cythonize

Alternatively, you can specify to build in-place:

git clone git://github.com/jcrudy/py-earth.git
cd py-earth
python setup.py build_ext --inplace --cythonize
srggrs commented 3 years ago

I have this issue too. Here is a minimal reproducibile example:

$ : conda create -n test-pyearth python=3.8.10 -y
$ : conda activate test-pyearth
$ : pip install sklearn-contrib-py-earth
mfouesneau commented 3 years ago

I also have this problem. Python 3.7, 3.8 and 3.9. Similar error message

Collecting sklearn-contrib-py-earth
  Downloading sklearn-contrib-py-earth-0.1.0.tar.gz (1.0 MB)
     |████████████████████████████████| 1.0 MB 6.6 MB/s 
Requirement already satisfied: scipy>=0.16 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from sklearn-contrib-py-earth) (1.6.3)
Requirement already satisfied: scikit-learn>=0.16 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from sklearn-contrib-py-earth) (0.24.2)
Requirement already satisfied: six in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from sklearn-contrib-py-earth) (1.16.0)
Requirement already satisfied: threadpoolctl>=2.0.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from scikit-learn>=0.16->sklearn-contrib-py-earth) (2.1.0)
Requirement already satisfied: joblib>=0.11 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from scikit-learn>=0.16->sklearn-contrib-py-earth) (1.0.1)
Requirement already satisfied: numpy>=1.13.3 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from scikit-learn>=0.16->sklearn-contrib-py-earth) (1.19.5)
Building wheels for collected packages: sklearn-contrib-py-earth
  Building wheel for sklearn-contrib-py-earth (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /root/venv/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-sm94q7b1/sklearn-contrib-py-earth_a77e074a32a545ae9887d82e345fbab5/setup.py'"'"'; __file__='"'"'/tmp/pip-install-sm94q7b1/sklearn-contrib-py-earth_a77e074a32a545ae9887d82e345fbab5/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-zhjjplel
       cwd: /tmp/pip-install-sm94q7b1/sklearn-contrib-py-earth_a77e074a32a545ae9887d82e345fbab5/
  Complete output (145 lines):
  /root/venv/lib/python3.7/site-packages/setuptools/dist.py:694: UserWarning: Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead
    % (opt, underscore_opt))
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.7
  creating build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_version.py -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/__init__.py -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/export.py -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/earth.py -> build/lib.linux-x86_64-3.7/pyearth
  creating build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/test_pruning.py -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/testing_utils.py -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/test_earth.py -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/__init__.py -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/test_util.py -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/test_forward.py -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/test_qr.py -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/test_export.py -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/test_knot_search.py -> build/lib.linux-x86_64-3.7/pyearth/test
  creating build/lib.linux-x86_64-3.7/pyearth/test/record
  copying pyearth/test/record/test_forward_pass.py -> build/lib.linux-x86_64-3.7/pyearth/test/record
  copying pyearth/test/record/__init__.py -> build/lib.linux-x86_64-3.7/pyearth/test/record
  copying pyearth/test/record/test_pruning_pass.py -> build/lib.linux-x86_64-3.7/pyearth/test/record
  creating build/lib.linux-x86_64-3.7/pyearth/test/basis
  copying pyearth/test/basis/test_hinge.py -> build/lib.linux-x86_64-3.7/pyearth/test/basis
  copying pyearth/test/basis/__init__.py -> build/lib.linux-x86_64-3.7/pyearth/test/basis
  copying pyearth/test/basis/test_missingness.py -> build/lib.linux-x86_64-3.7/pyearth/test/basis
  copying pyearth/test/basis/test_smoothed_hinge.py -> build/lib.linux-x86_64-3.7/pyearth/test/basis
  copying pyearth/test/basis/test_constant.py -> build/lib.linux-x86_64-3.7/pyearth/test/basis
  copying pyearth/test/basis/test_basis.py -> build/lib.linux-x86_64-3.7/pyearth/test/basis
  copying pyearth/test/basis/test_linear.py -> build/lib.linux-x86_64-3.7/pyearth/test/basis
  copying pyearth/test/basis/base.py -> build/lib.linux-x86_64-3.7/pyearth/test/basis
  running egg_info
  writing sklearn_contrib_py_earth.egg-info/PKG-INFO
  writing dependency_links to sklearn_contrib_py_earth.egg-info/dependency_links.txt
  writing requirements to sklearn_contrib_py_earth.egg-info/requires.txt
  writing top-level names to sklearn_contrib_py_earth.egg-info/top_level.txt
  reading manifest file 'sklearn_contrib_py_earth.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'pyearth/test/pathological_data'
  adding license file 'LICENSE.txt'
  writing manifest file 'sklearn_contrib_py_earth.egg-info/SOURCES.txt'
  copying pyearth/_basis.c -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_basis.pxd -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_forward.c -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_forward.pxd -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_knot_search.c -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_knot_search.pxd -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_pruning.c -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_pruning.pxd -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_qr.c -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_qr.pxd -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_record.c -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_record.pxd -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_types.c -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_types.pxd -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_util.c -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/_util.pxd -> build/lib.linux-x86_64-3.7/pyearth
  copying pyearth/test/earth_linvars_regress.txt -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/earth_regress.txt -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/earth_regress_missing_data.txt -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/earth_regress_smooth.txt -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/forward_regress.txt -> build/lib.linux-x86_64-3.7/pyearth/test
  copying pyearth/test/test_data.csv -> build/lib.linux-x86_64-3.7/pyearth/test
  UPDATING build/lib.linux-x86_64-3.7/pyearth/_version.py
  set build/lib.linux-x86_64-3.7/pyearth/_version.py to '0.1.0'
  running build_ext
  building 'pyearth._util' extension
  creating build/temp.linux-x86_64-3.7
  creating build/temp.linux-x86_64-3.7/pyearth
  gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/shared-libs/python3.7/py/lib/python3.7/site-packages/numpy/core/include -I/root/venv/include -I/usr/local/include/python3.7m -c pyearth/_util.c -o build/temp.linux-x86_64-3.7/pyearth/_util.o
  In file included from /shared-libs/python3.7/py/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1822,
                   from /shared-libs/python3.7/py/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                   from /shared-libs/python3.7/py/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                   from pyearth/_util.c:495:
  /shared-libs/python3.7/py/lib/python3.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
   #warning "Using deprecated NumPy API, disable it with " \
    ^~~~~~~
  pyearth/_util.c: In function ‘__Pyx__ExceptionSave’:
  pyearth/_util.c:8071:21: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
       *type = tstate->exc_type;
                       ^~~~~~~~
                       curexc_type
  pyearth/_util.c:8072:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
       *value = tstate->exc_value;
                        ^~~~~~~~~
                        curexc_value
  pyearth/_util.c:8073:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
       *tb = tstate->exc_traceback;
                     ^~~~~~~~~~~~~
                     curexc_traceback
  pyearth/_util.c: In function ‘__Pyx__ExceptionReset’:
  pyearth/_util.c:8080:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
       tmp_type = tstate->exc_type;
                          ^~~~~~~~
                          curexc_type
  pyearth/_util.c:8081:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
       tmp_value = tstate->exc_value;
                           ^~~~~~~~~
                           curexc_value
  pyearth/_util.c:8082:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
       tmp_tb = tstate->exc_traceback;
                        ^~~~~~~~~~~~~
                        curexc_traceback
  pyearth/_util.c:8083:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
       tstate->exc_type = type;
               ^~~~~~~~
               curexc_type
  pyearth/_util.c:8084:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
       tstate->exc_value = value;
               ^~~~~~~~~
               curexc_value
  pyearth/_util.c:8085:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
       tstate->exc_traceback = tb;
               ^~~~~~~~~~~~~
               curexc_traceback
  pyearth/_util.c: In function ‘__Pyx__GetException’:
  pyearth/_util.c:8140:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
       tmp_type = tstate->exc_type;
                          ^~~~~~~~
                          curexc_type
  pyearth/_util.c:8141:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
       tmp_value = tstate->exc_value;
                           ^~~~~~~~~
                           curexc_value
  pyearth/_util.c:8142:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
       tmp_tb = tstate->exc_traceback;
                        ^~~~~~~~~~~~~
                        curexc_traceback
  pyearth/_util.c:8143:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
       tstate->exc_type = local_type;
               ^~~~~~~~
               curexc_type
  pyearth/_util.c:8144:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
       tstate->exc_value = local_value;
               ^~~~~~~~~
               curexc_value
  pyearth/_util.c:8145:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
       tstate->exc_traceback = local_tb;
               ^~~~~~~~~~~~~
               curexc_traceback
  error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for sklearn-contrib-py-earth
  Running setup.py clean for sklearn-contrib-py-earth
Failed to build sklearn-contrib-py-earth
Installing collected packages: sklearn-contrib-py-earth
    Running setup.py install for sklearn-contrib-py-earth ... error
    ERROR: Command errored out with exit status 1:
     command: /root/venv/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-sm94q7b1/sklearn-contrib-py-earth_a77e074a32a545ae9887d82e345fbab5/setup.py'"'"'; __file__='"'"'/tmp/pip-install-sm94q7b1/sklearn-contrib-py-earth_a77e074a32a545ae9887d82e345fbab5/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-u0jxin_i/install-record.txt --single-version-externally-managed --compile --install-headers /root/venv/include/site/python3.7/sklearn-contrib-py-earth
         cwd: /tmp/pip-install-sm94q7b1/sklearn-contrib-py-earth_a77e074a32a545ae9887d82e345fbab5/
    Complete output (93 lines):
    /root/venv/lib/python3.7/site-packages/setuptools/dist.py:694: UserWarning: Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead
      % (opt, underscore_opt))
    running install
    running build
    running build_py
    running egg_info
    writing sklearn_contrib_py_earth.egg-info/PKG-INFO
    writing dependency_links to sklearn_contrib_py_earth.egg-info/dependency_links.txt
    writing requirements to sklearn_contrib_py_earth.egg-info/requires.txt
    writing top-level names to sklearn_contrib_py_earth.egg-info/top_level.txt
    reading manifest file 'sklearn_contrib_py_earth.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching 'pyearth/test/pathological_data'
    adding license file 'LICENSE.txt'
    writing manifest file 'sklearn_contrib_py_earth.egg-info/SOURCES.txt'
    UPDATING build/lib.linux-x86_64-3.7/pyearth/_version.py
    set build/lib.linux-x86_64-3.7/pyearth/_version.py to '0.1.0'
    running build_ext
    building 'pyearth._util' extension
    creating build/temp.linux-x86_64-3.7
    creating build/temp.linux-x86_64-3.7/pyearth
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/shared-libs/python3.7/py/lib/python3.7/site-packages/numpy/core/include -I/root/venv/include -I/usr/local/include/python3.7m -c pyearth/_util.c -o build/temp.linux-x86_64-3.7/pyearth/_util.o
    In file included from /shared-libs/python3.7/py/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1822,
                     from /shared-libs/python3.7/py/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                     from /shared-libs/python3.7/py/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
                     from pyearth/_util.c:495:
    /shared-libs/python3.7/py/lib/python3.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
     #warning "Using deprecated NumPy API, disable it with " \
      ^~~~~~~
    pyearth/_util.c: In function ‘__Pyx__ExceptionSave’:
    pyearth/_util.c:8071:21: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
         *type = tstate->exc_type;
                         ^~~~~~~~
                         curexc_type
    pyearth/_util.c:8072:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
         *value = tstate->exc_value;
                          ^~~~~~~~~
                          curexc_value
    pyearth/_util.c:8073:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
         *tb = tstate->exc_traceback;
                       ^~~~~~~~~~~~~
                       curexc_traceback
    pyearth/_util.c: In function ‘__Pyx__ExceptionReset’:
    pyearth/_util.c:8080:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
         tmp_type = tstate->exc_type;
                            ^~~~~~~~
                            curexc_type
    pyearth/_util.c:8081:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
         tmp_value = tstate->exc_value;
                             ^~~~~~~~~
                             curexc_value
    pyearth/_util.c:8082:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
         tmp_tb = tstate->exc_traceback;
                          ^~~~~~~~~~~~~
                          curexc_traceback
    pyearth/_util.c:8083:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
         tstate->exc_type = type;
                 ^~~~~~~~
                 curexc_type
    pyearth/_util.c:8084:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
         tstate->exc_value = value;
                 ^~~~~~~~~
                 curexc_value
    pyearth/_util.c:8085:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
         tstate->exc_traceback = tb;
                 ^~~~~~~~~~~~~
                 curexc_traceback
    pyearth/_util.c: In function ‘__Pyx__GetException’:
    pyearth/_util.c:8140:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
         tmp_type = tstate->exc_type;
                            ^~~~~~~~
                            curexc_type
    pyearth/_util.c:8141:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
         tmp_value = tstate->exc_value;
                             ^~~~~~~~~
                             curexc_value
    pyearth/_util.c:8142:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
         tmp_tb = tstate->exc_traceback;
                          ^~~~~~~~~~~~~
                          curexc_traceback
    pyearth/_util.c:8143:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
         tstate->exc_type = local_type;
                 ^~~~~~~~
                 curexc_type
    pyearth/_util.c:8144:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
         tstate->exc_value = local_value;
                 ^~~~~~~~~
                 curexc_value
    pyearth/_util.c:8145:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
         tstate->exc_traceback = local_tb;
                 ^~~~~~~~~~~~~
                 curexc_traceback
    error: command 'gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /root/venv/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-sm94q7b1/sklearn-contrib-py-earth_a77e074a32a545ae9887d82e345fbab5/setup.py'"'"'; __file__='"'"'/tmp/pip-install-sm94q7b1/sklearn-contrib-py-earth_a77e074a32a545ae9887d82e345fbab5/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-u0jxin_i/install-record.txt --single-version-externally-managed --compile --install-headers /root/venv/include/site/python3.7/sklearn-contrib-py-earth Check the logs for full command output.
WARNING: You are using pip version 21.1.2; however, version 21.1.3 is available.
You should consider upgrading via the '/root/venv/bin/python -m pip install --upgrade pip' command.
srggrs commented 3 years ago

I solved installing the dev branch

mfouesneau commented 3 years ago

Can you give the actual procedure. I do not see a dev branch.

kevin-dietz commented 3 years ago

pip install sklearn-contrib-py-earth will not work on > python 3.6. Either use the solution outlined above or the solution outlined in the comments section of the article referenced above that uses the pip install method.

mfouesneau commented 3 years ago

Indeed, it works when cloning the repo and installing manually. What's the issue with pip?

srggrs commented 3 years ago

I used the instructions in the last comment in here https://stackoverflow.com/questions/66503039/how-to-install-pyearth-in-google-colab

pip install git+https://github.com/scikit-learn-contrib/py-earth@v0.2dev
bluenote10 commented 2 years ago

Would it be possible to make a release on PyPI? Currently a plain pip install sklearn-contrib-py-earth also fails for me under a standard Ubuntu Python 3.8 environment (fresh/empty venv).

QianbiaoLiu commented 2 years ago
pip install git+https://github.com/scikit-learn-contrib/py-earth@v0.2dev

Thank you! it works.