bogliosimone / similaripy

Fast Python KNN-Similarity algorithms for Collaborative Filtering models in Recommender System and others.
MIT License
53 stars 3 forks source link

Error when installing from pip on ubuntu #4

Closed h-jumper closed 2 years ago

h-jumper commented 2 years ago

Can you help me? I get following logs, when trying to install similaripy with pip on ubuntu.

Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Collecting similaripy
  Using cached http://mirrors.aliyun.com/pypi/packages/55/7f/323eb210bc8db521479e61ca913f2da810d6d7fa6ee4f9b34bcf7a2d5227/similaripy-0.1.2.tar.gz (331 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: scipy>=1.0.0 in ./.local/lib/python3.8/site-packages (from similaripy) (1.6.2)
Requirement already satisfied: numpy>=1.14.0 in ./.local/lib/python3.8/site-packages (from similaripy) (1.20.1)
Requirement already satisfied: tqdm>=4.19.6 in ./.local/lib/python3.8/site-packages (from similaripy) (4.59.0)
Building wheels for collected packages: similaripy
  Building wheel for similaripy (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/atr1506/anaconda3/envs/jumper/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ftjbpqb_/similaripy_ada36661a39543cab2f2804c28e2d698/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ftjbpqb_/similaripy_ada36661a39543cab2f2804c28e2d698/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-30x2fjf5
       cwd: /tmp/pip-install-ftjbpqb_/similaripy_ada36661a39543cab2f2804c28e2d698/
  Complete output (44 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.8
  creating build/lib.linux-x86_64-3.8/similaripy
  copying similaripy/utility.py -> build/lib.linux-x86_64-3.8/similaripy
  copying similaripy/__init__.py -> build/lib.linux-x86_64-3.8/similaripy
  copying similaripy/similarity.py -> build/lib.linux-x86_64-3.8/similaripy
  copying similaripy/normalization.py -> build/lib.linux-x86_64-3.8/similaripy
  running egg_info
  writing manifest file 'similaripy.egg-info/SOURCES.txt'
  creating build/lib.linux-x86_64-3.8/similaripy/cython_code
  copying similaripy/cython_code/__init__.py -> build/lib.linux-x86_64-3.8/similaripy/cython_code
  copying similaripy/cython_code/coo_to_csr.h -> build/lib.linux-x86_64-3.8/similaripy/cython_code
  copying similaripy/cython_code/normalization.cpp -> build/lib.linux-x86_64-3.8/similaripy/cython_code
  copying similaripy/cython_code/normalization.pyx -> build/lib.linux-x86_64-3.8/similaripy/cython_code
  copying similaripy/cython_code/s_plus.cpp -> build/lib.linux-x86_64-3.8/similaripy/cython_code
  copying similaripy/cython_code/s_plus.h -> build/lib.linux-x86_64-3.8/similaripy/cython_code
  copying similaripy/cython_code/s_plus.pyx -> build/lib.linux-x86_64-3.8/similaripy/cython_code
  running build_ext
  creating build/temp.linux-x86_64-3.8
  creating build/temp.linux-x86_64-3.8/similaripy
  creating build/temp.linux-x86_64-3.8/similaripy/cython_code
  gcc -pthread -B /home/atr1506/anaconda3/envs/jumper/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Isimilaripy/cython_code -I/home/atr1506/anaconda3/envs/jumper/include/python3.8 -c similaripy/cython_code/s_plus.cpp -o build/temp.linux-x86_64-3.8/similaripy/cython_code/s_plus.o -Wno-unused-function -Wno-maybe-uninitialized -O3 -ffast-math -fopenmp -std=c++11
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
  In file included from similaripy/cython_code/s_plus.cpp:671:0:
  similaripy/cython_code/s_plus.h: In member function ‘void s_plus::SparseMatrixMultiplier<Index, Value>::foreach(Function&)’:
  similaripy/cython_code/s_plus.h:115:22: error: ‘pow’ is not a member of ‘std’
                   xy = std::pow(xy, a1); // very slow operation
                        ^
  similaripy/cython_code/s_plus.h:115:22: note: suggested alternative:
  In file included from /usr/include/features.h:424:0,
                   from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                   from /usr/include/limits.h:26,
                   from /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:168,
                   from /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:7,
                   from /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:34,
                   from /home/atr1506/anaconda3/envs/jumper/include/python3.8/Python.h:11,
                   from similaripy/cython_code/s_plus.cpp:36:
  /usr/include/x86_64-linux-gnu/bits/math-finite.h:156:1: note:   ‘pow’
   __MATH_REDIRCALL (pow, , (_Mdouble_, _Mdouble_));
   ^
  error: command '/usr/bin/gcc' failed with exit code 1
  ----------------------------------------
  ERROR: Failed building wheel for similaripy
  Running setup.py clean for similaripy
Failed to build similaripy
Installing collected packages: similaripy
    Running setup.py install for similaripy ... error
    ERROR: Command errored out with exit status 1:
     command: /home/atr1506/anaconda3/envs/jumper/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ftjbpqb_/similaripy_ada36661a39543cab2f2804c28e2d698/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ftjbpqb_/similaripy_ada36661a39543cab2f2804c28e2d698/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-7425mi13/install-record.txt --single-version-externally-managed --compile --install-headers /home/atr1506/anaconda3/envs/jumper/include/python3.8/similaripy
         cwd: /tmp/pip-install-ftjbpqb_/similaripy_ada36661a39543cab2f2804c28e2d698/
    Complete output (46 lines):
    running install
    /home/atr1506/anaconda3/envs/jumper/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
      warnings.warn(
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.8
    creating build/lib.linux-x86_64-3.8/similaripy
    copying similaripy/utility.py -> build/lib.linux-x86_64-3.8/similaripy
    copying similaripy/__init__.py -> build/lib.linux-x86_64-3.8/similaripy
    copying similaripy/similarity.py -> build/lib.linux-x86_64-3.8/similaripy
    copying similaripy/normalization.py -> build/lib.linux-x86_64-3.8/similaripy
    running egg_info
    writing manifest file 'similaripy.egg-info/SOURCES.txt'
    creating build/lib.linux-x86_64-3.8/similaripy/cython_code
    copying similaripy/cython_code/__init__.py -> build/lib.linux-x86_64-3.8/similaripy/cython_code
    copying similaripy/cython_code/coo_to_csr.h -> build/lib.linux-x86_64-3.8/similaripy/cython_code
    copying similaripy/cython_code/normalization.cpp -> build/lib.linux-x86_64-3.8/similaripy/cython_code
    copying similaripy/cython_code/normalization.pyx -> build/lib.linux-x86_64-3.8/similaripy/cython_code
    copying similaripy/cython_code/s_plus.cpp -> build/lib.linux-x86_64-3.8/similaripy/cython_code
    copying similaripy/cython_code/s_plus.h -> build/lib.linux-x86_64-3.8/similaripy/cython_code
    copying similaripy/cython_code/s_plus.pyx -> build/lib.linux-x86_64-3.8/similaripy/cython_code
    running build_ext
    creating build/temp.linux-x86_64-3.8
    creating build/temp.linux-x86_64-3.8/similaripy
    creating build/temp.linux-x86_64-3.8/similaripy/cython_code
    gcc -pthread -B /home/atr1506/anaconda3/envs/jumper/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Isimilaripy/cython_code -I/home/atr1506/anaconda3/envs/jumper/include/python3.8 -c similaripy/cython_code/s_plus.cpp -o build/temp.linux-x86_64-3.8/similaripy/cython_code/s_plus.o -Wno-unused-function -Wno-maybe-uninitialized -O3 -ffast-math -fopenmp -std=c++11
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    In file included from similaripy/cython_code/s_plus.cpp:671:0:
    similaripy/cython_code/s_plus.h: In member function ‘void s_plus::SparseMatrixMultiplier<Index, Value>::foreach(Function&)’:
    similaripy/cython_code/s_plus.h:115:22: error: ‘pow’ is not a member of ‘std’
                     xy = std::pow(xy, a1); // very slow operation
                          ^
    similaripy/cython_code/s_plus.h:115:22: note: suggested alternative:
    In file included from /usr/include/features.h:424:0,
                     from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                     from /usr/include/limits.h:26,
                     from /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:168,
                     from /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:7,
                     from /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:34,
                     from /home/atr1506/anaconda3/envs/jumper/include/python3.8/Python.h:11,
                     from similaripy/cython_code/s_plus.cpp:36:
    /usr/include/x86_64-linux-gnu/bits/math-finite.h:156:1: note:   ‘pow’
     __MATH_REDIRCALL (pow, , (_Mdouble_, _Mdouble_));
     ^
    error: command '/usr/bin/gcc' failed with exit code 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/atr1506/anaconda3/envs/jumper/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ftjbpqb_/similaripy_ada36661a39543cab2f2804c28e2d698/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ftjbpqb_/similaripy_ada36661a39543cab2f2804c28e2d698/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-7425mi13/install-record.txt --single-version-externally-managed --compile --install-headers /home/atr1506/anaconda3/envs/jumper/include/python3.8/similaripy Check the logs for full command output.
bogliosimone commented 2 years ago

Hi @h-jumper,

in the end, I was able to reproduce your error on a new machine. When compiling the source files the following error is raised 'pow' is not a member of 'std'

It seems that new versions of c++ require including the cmath library when using functions like std::pow This can be fixed by adding #include <cmath> to the similaripy\cython_code\s_plus.h source file.

A new version of Similaripy was drafted to overcome this issue: v0.1.3

Cheers, Simone