Installation Problem with 'eif' module
Opened this issue · 1 comments
SamoyedY commented
I was trying to install the TimeSeAD library by running pip install -e . from within the repo, but encountered the following error:
Building wheels for collected packages: eif
Building wheel for eif (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [95 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-310
copying eif_old.py -> build/lib.linux-x86_64-cpython-310
copying version.py -> build/lib.linux-x86_64-cpython-310
running egg_info
writing eif.egg-info/PKG-INFO
writing dependency_links to eif.egg-info/dependency_links.txt
writing requirements to eif.egg-info/requires.txt
writing top-level names to eif.egg-info/top_level.txt
reading manifest file 'eif.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'Readme.md'
writing manifest file 'eif.egg-info/SOURCES.txt'
running build_ext
Compiling _eif.pyx because it changed.
[1/1] Cythonizing _eif.pyx
warning: _eif.pyx:12:8: Global name __eif matched from within class scope in contradiction to to Python 'class private name' rules. This may change in a future release.
warning: _eif.pyx:12:8: Global name __eif matched from within class scope in contradiction to to Python 'class private name' rules. This may change in a future release.
Error compiling Cython file:
------------------------------------------------------------
...
@cython.boundscheck(False)
@cython.wraparound(False)
def __cinit__ (self, np.ndarray[double, ndim=2] X not None, int ntrees, int sample_size, int limit=0, int ExtensionLevel=0, int seed=-1):
if ExtensionLevel < 0:
raise Exception("Wrong Extension")
self.thisptr = new __eif.iForest (ntrees, sample_size, limit, ExtensionLevel, seed)
^
------------------------------------------------------------
_eif.pyx:31:23: Operation only allowed in c++
Error compiling Cython file:
------------------------------------------------------------
...
@property
def limit(self):
return self._limit
def __dealloc__ (self):
del self.thisptr
^
------------------------------------------------------------
_eif.pyx:51:8: Operation only allowed in c++
Traceback (most recent call last):
......Cython/Build/Dependencies.py", line 1321, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: _eif.pyx
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for eif
Running setup.py clean for eif
Failed to build eif
ERROR: Could not build wheels for eif, which is required to install pyproject.toml-based projects.
I attempted to google the issue but could not find a solution.
Could anyone provide some insights on how to resolve this issue?
Thank you in advance for your help!
batman-nair commented
Hey! Could you tell me if you are following the installation setup provided in the documentation ?
Are you using conda or some other virtual environment setup? Also your operating system?
I tried a fresh install on a linux container with conda with the CPU instructions and the installation ran fine. So a bit more insight would be helpful.