benfred / implicit

Fast Python Collaborative Filtering for Implicit Feedback Datasets
https://benfred.github.io/implicit/
MIT License
3.57k stars 612 forks source link

Can't install implicit #147

Closed dimitris93 closed 6 years ago

dimitris93 commented 6 years ago

I am trying to install the implicit package on windows 10 with Python 2.7.15 using

pip install implicit

There seems to be an error with implicit/bpr.cpp if I am not mistaken. I have no idea what to do.

implicit\bpr.cpp(1277) : fatal error C1003: error count exceeds 100; stopping compilation

This is the full log I am getting:

C:\WINDOWS\system32>pip install implicit
Collecting implicit
  Using cached https://files.pythonhosted.org/packages/d9/0c/7f9f065cceab3c27b7207bbbc3127ff698f1dbaabc2e5f5ef92cb3a39a43/implicit-0.3.6.tar.gz
Requirement already satisfied: numpy in c:\python27\lib\site-packages (from implicit) (1.11.2+mkl)
Requirement already satisfied: scipy>=0.16 in c:\python27\lib\site-packages (from implicit) (0.18.1)
Requirement already satisfied: h5py in c:\python27\lib\site-packages (from implicit) (2.8.0)
Requirement already satisfied: tqdm in c:\python27\lib\site-packages (from implicit) (4.24.0)
Requirement already satisfied: six in c:\python27\lib\site-packages (from h5py->implicit) (1.10.0)
Building wheels for collected packages: implicit
  Running setup.py bdist_wheel for implicit ... error
  Complete output from command c:\python27\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\shiro\\appdata\\local\\temp\\pip-install-civoat\\implicit\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d c:\users\shiro\appdata\local\temp\pip-wheel-iv5suw --python-tag cp27:
  WARNING:root:The nvcc binary could not be located in your $PATH. Either add it to your path, or set $CUDAHOME to enable CUDA extensions
  Failed to find CUDA toolkit. Building without GPU acceleration.
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-2.7
  creating build\lib.win-amd64-2.7\implicit
  copying implicit\als.py -> build\lib.win-amd64-2.7\implicit
  copying implicit\approximate_als.py -> build\lib.win-amd64-2.7\implicit
  copying implicit\nearest_neighbours.py -> build\lib.win-amd64-2.7\implicit
  copying implicit\recommender_base.py -> build\lib.win-amd64-2.7\implicit
  copying implicit\utils.py -> build\lib.win-amd64-2.7\implicit
  copying implicit\__init__.py -> build\lib.win-amd64-2.7\implicit
  creating build\lib.win-amd64-2.7\implicit\cuda
  copying implicit\cuda\__init__.py -> build\lib.win-amd64-2.7\implicit\cuda
  creating build\lib.win-amd64-2.7\implicit\datasets
  copying implicit\datasets\lastfm.py -> build\lib.win-amd64-2.7\implicit\datasets
  copying implicit\datasets\million_song_dataset.py -> build\lib.win-amd64-2.7\implicit\datasets
  copying implicit\datasets\movielens.py -> build\lib.win-amd64-2.7\implicit\datasets
  copying implicit\datasets\sketchfab.py -> build\lib.win-amd64-2.7\implicit\datasets
  copying implicit\datasets\_download.py -> build\lib.win-amd64-2.7\implicit\datasets
  copying implicit\datasets\__init__.py -> build\lib.win-amd64-2.7\implicit\datasets
  running build_ext
  building 'implicit._als' extension
  creating build\temp.win-amd64-2.7
  creating build\temp.win-amd64-2.7\Release
  creating build\temp.win-amd64-2.7\Release\implicit
  C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Ic:\python27\include -Ic:\python27\PC /Tpimplicit\_als.cpp /Fobuild\temp.win-amd64-2.7\Release\implicit\_als.obj /O2 /openmp
  _als.cpp
  C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Include\xlocale(342) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
  implicit\_als.cpp(3637) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
  implicit\_als.cpp(3919) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
  implicit\_als.cpp(4404) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(4405) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(4850) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(5568) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(5569) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(6732) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(6733) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(7178) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(7896) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(7897) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(9060) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(9061) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(9506) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(10224) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(10225) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(11678) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
  implicit\_als.cpp(11960) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
  implicit\_als.cpp(12468) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(12469) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(12854) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(12999) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(13040) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(13526) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(13527) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(14584) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(14585) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(14970) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(15115) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(15156) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(15642) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(15643) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(16700) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(16701) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(17086) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(17231) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(17272) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(17758) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(17759) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(19070) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
  implicit\_als.cpp(19352) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
  implicit\_als.cpp(19842) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(19843) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(19844) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(20148) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(20652) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(20653) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(20654) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(21462) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(21463) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(21464) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(21768) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(22272) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(22273) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(22274) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(23082) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(23083) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(23084) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(23388) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
  implicit\_als.cpp(23892) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(23893) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  implicit\_als.cpp(23894) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
  C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\python27\libs /LIBPATH:c:\python27\PCbuild\amd64 /LIBPATH:c:\python27\PC\VS9.0\amd64 /EXPORT:init_als build\temp.win-amd64-2.7\Release\implicit\_als.obj /OUT:build\lib.win-amd64-2.7\implicit\_als.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\implicit\_als.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\implicit\_als.pyd.manifest
  _als.obj : warning LNK4197: export 'init_als' specified multiple times; using first specification
     Creating library build\temp.win-amd64-2.7\Release\implicit\_als.lib and object build\temp.win-amd64-2.7\Release\implicit\_als.exp
  C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\WinSDK\Bin\x64\mt.exe -nologo -manifest build\temp.win-amd64-2.7\Release\implicit\_als.pyd.manifest -outputresource:build\lib.win-amd64-2.7\implicit\_als.pyd;2
  building 'implicit._nearest_neighbours' extension
  C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Iimplicit -Ic:\python27\include -Ic:\python27\PC /Tpimplicit\_nearest_neighbours.cpp /Fobuild\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.obj /O2 /openmp
  _nearest_neighbours.cpp
  C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Include\xlocale(342) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
  implicit\_nearest_neighbours.cpp(2867) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
  implicit\_nearest_neighbours.cpp(3187) : warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
  implicit\_nearest_neighbours.cpp(3604) : warning C4267: '=' : conversion from 'size_t' to 'int', possible loss of data
  implicit\_nearest_neighbours.cpp(4027) : warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
  implicit\_nearest_neighbours.cpp(4444) : warning C4267: '=' : conversion from 'size_t' to 'int', possible loss of data
  C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\python27\libs /LIBPATH:c:\python27\PCbuild\amd64 /LIBPATH:c:\python27\PC\VS9.0\amd64 /EXPORT:init_nearest_neighbours build\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.obj /OUT:build\lib.win-amd64-2.7\implicit\_nearest_neighbours.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.pyd.manifest
  _nearest_neighbours.obj : warning LNK4197: export 'init_nearest_neighbours' specified multiple times; using first specification
     Creating library build\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.lib and object build\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.exp
  C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\WinSDK\Bin\x64\mt.exe -nologo -manifest build\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.pyd.manifest -outputresource:build\lib.win-amd64-2.7\implicit\_nearest_neighbours.pyd;2
  building 'implicit.bpr' extension
  C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Iimplicit -Ic:\python27\include -Ic:\python27\PC /Tpimplicit\bpr.cpp /Fobuild\temp.win-amd64-2.7\Release\implicit\bpr.obj /O2 /openmp
  bpr.cpp
  C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Include\xlocale(342) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
  implicit\bpr.cpp(954) : error C2039: 'mt19937' : is not a member of 'std'
  implicit\bpr.cpp(954) : error C2065: 'mt19937' : undeclared identifier
  implicit\bpr.cpp(955) : error C2039: 'uniform_int_distribution' : is not a member of 'std'
  implicit\bpr.cpp(955) : error C2065: 'uniform_int_distribution' : undeclared identifier
  implicit\bpr.cpp(955) : error C2062: type 'long' unexpected
  implicit\bpr.cpp(956) : error C2143: syntax error : missing ';' before '}'
  implicit\bpr.cpp(966) : error C2143: syntax error : missing ';' before '{'
  implicit\bpr.cpp(981) : error C2143: syntax error : missing ';' before '}'
  implicit\bpr.cpp(991) : error C2143: syntax error : missing ';' before '{'
  implicit\bpr.cpp(994) : error C2143: syntax error : missing ';' before '}'
  implicit\bpr.cpp(1004) : error C2143: syntax error : missing ';' before '{'
  implicit\bpr.cpp(1017) : error C2143: syntax error : missing ';' before '}'
  implicit\bpr.cpp(1027) : error C2143: syntax error : missing ';' before '{'
  implicit\bpr.cpp(1032) : error C2059: syntax error : ')'
  implicit\bpr.cpp(1033) : error C2143: syntax error : missing ';' before '}'
  implicit\bpr.cpp(1045) : error C2143: syntax error : missing ';' before '{'
  implicit\bpr.cpp(1047) : error C2143: syntax error : missing ';' before '}'
  implicit\bpr.cpp(1060) : error C2143: syntax error : missing ';' before '{'
  implicit\bpr.cpp(1062) : error C2143: syntax error : missing ';' before '}'
  implicit\bpr.cpp(1074) : error C2143: syntax error : missing ';' before '{'
  implicit\bpr.cpp(1075) : error C2059: syntax error : ')'
  implicit\bpr.cpp(1076) : error C2059: syntax error : ')'
  implicit\bpr.cpp(1077) : error C2059: syntax error : ','
  implicit\bpr.cpp(1077) : error C2059: syntax error : ')'
  implicit\bpr.cpp(1078) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1079) : error C2059: syntax error : ','
  implicit\bpr.cpp(1079) : error C2059: syntax error : ')'
  implicit\bpr.cpp(1080) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1081) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1082) : error C2143: syntax error : missing ';' before '}'
  implicit\bpr.cpp(1094) : error C2143: syntax error : missing ';' before '{'
  implicit\bpr.cpp(1096) : error C2143: syntax error : missing ';' before '}'
  implicit\bpr.cpp(1165) : error C2065: 'attr_name' : undeclared identifier
  implicit\bpr.cpp(1165) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\python27\include\object.h(108) : see declaration of 'PyObject'
  implicit\bpr.cpp(1165) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1178) : error C2065: 'kw_name' : undeclared identifier
  implicit\bpr.cpp(1178) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\python27\include\object.h(108) : see declaration of 'PyObject'
  implicit\bpr.cpp(1178) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1181) : error C2065: 'argnames' : undeclared identifier
  implicit\bpr.cpp(1181) : error C2059: syntax error : ']'
  implicit\bpr.cpp(1182) : error C2065: 'kwds2' : undeclared identifier
  implicit\bpr.cpp(1182) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\python27\include\object.h(108) : see declaration of 'PyObject'
  implicit\bpr.cpp(1182) : error C2146: syntax error : missing ',' before identifier 'values'
  implicit\bpr.cpp(1182) : error C2065: 'values' : undeclared identifier
  implicit\bpr.cpp(1182) : error C2059: syntax error : ']'
  implicit\bpr.cpp(1183) : error C2146: syntax error : missing ',' before identifier 'function_name'
  implicit\bpr.cpp(1183) : error C2065: 'function_name' : undeclared identifier
  implicit\bpr.cpp(1183) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1190) : error C2065: 'arg' : undeclared identifier
  implicit\bpr.cpp(1190) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\python27\include\object.h(108) : see declaration of 'PyObject'
  implicit\bpr.cpp(1190) : error C2146: syntax error : missing ',' before identifier 'kw'
  implicit\bpr.cpp(1190) : error C2065: 'kw' : undeclared identifier
  implicit\bpr.cpp(1190) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1213) : error C2065: 'type' : undeclared identifier
  implicit\bpr.cpp(1213) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\python27\include\object.h(108) : see declaration of 'PyObject'
  implicit\bpr.cpp(1213) : error C2146: syntax error : missing ',' before identifier 'value'
  implicit\bpr.cpp(1213) : error C2065: 'value' : undeclared identifier
  implicit\bpr.cpp(1213) : error C2146: syntax error : missing ',' before identifier 'tb'
  implicit\bpr.cpp(1213) : error C2065: 'tb' : undeclared identifier
  implicit\bpr.cpp(1213) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1214) : error C2065: 'type' : undeclared identifier
  implicit\bpr.cpp(1214) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\python27\include\object.h(108) : see declaration of 'PyObject'
  implicit\bpr.cpp(1214) : error C2146: syntax error : missing ',' before identifier 'value'
  implicit\bpr.cpp(1214) : error C2065: 'value' : undeclared identifier
  implicit\bpr.cpp(1214) : error C2146: syntax error : missing ',' before identifier 'tb'
  implicit\bpr.cpp(1214) : error C2065: 'tb' : undeclared identifier
  implicit\bpr.cpp(1214) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1232) : error C2065: 'value' : undeclared identifier
  implicit\bpr.cpp(1232) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\python27\include\object.h(108) : see declaration of 'PyObject'
  implicit\bpr.cpp(1232) : error C2146: syntax error : missing ',' before identifier 'tb'
  implicit\bpr.cpp(1232) : error C2065: 'tb' : undeclared identifier
  implicit\bpr.cpp(1232) : error C2146: syntax error : missing ',' before identifier 'cause'
  implicit\bpr.cpp(1232) : error C2065: 'cause' : undeclared identifier
  implicit\bpr.cpp(1232) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1246) : error C2065: 'args' : undeclared identifier
  implicit\bpr.cpp(1246) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\python27\include\object.h(108) : see declaration of 'PyObject'
  implicit\bpr.cpp(1246) : error C2146: syntax error : missing ',' before identifier 'nargs'
  implicit\bpr.cpp(1246) : error C2065: 'nargs' : undeclared identifier
  implicit\bpr.cpp(1246) : error C2146: syntax error : missing ',' before identifier 'kwargs'
  implicit\bpr.cpp(1246) : error C2065: 'kwargs' : undeclared identifier
  implicit\bpr.cpp(1246) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1254) : error C2065: 'arg' : undeclared identifier
  implicit\bpr.cpp(1254) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\python27\include\object.h(108) : see declaration of 'PyObject'
  implicit\bpr.cpp(1254) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1258) : error C2065: 'arg' : undeclared identifier
  implicit\bpr.cpp(1258) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\python27\include\object.h(108) : see declaration of 'PyObject'
  implicit\bpr.cpp(1258) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1269) : error C2065: 'op2' : undeclared identifier
  implicit\bpr.cpp(1269) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\python27\include\object.h(108) : see declaration of 'PyObject'
  implicit\bpr.cpp(1269) : error C2146: syntax error : missing ',' before identifier 'intval'
  implicit\bpr.cpp(1269) : error C2065: 'intval' : undeclared identifier
  implicit\bpr.cpp(1269) : error C2146: syntax error : missing ',' before identifier 'inplace'
  implicit\bpr.cpp(1269) : error C2065: 'inplace' : undeclared identifier
  implicit\bpr.cpp(1269) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1277) : error C2065: 'op2' : undeclared identifier
  implicit\bpr.cpp(1277) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\python27\include\object.h(108) : see declaration of 'PyObject'
  implicit\bpr.cpp(1277) : error C2146: syntax error : missing ',' before identifier 'intval'
  implicit\bpr.cpp(1277) : error C2065: 'intval' : undeclared identifier
  implicit\bpr.cpp(1277) : error C2146: syntax error : missing ',' before identifier 'inplace'
  implicit\bpr.cpp(1277) : error C2065: 'inplace' : undeclared identifier
  implicit\bpr.cpp(1277) : error C2143: syntax error : missing ',' before ')'
  implicit\bpr.cpp(1277) : fatal error C1003: error count exceeds 100; stopping compilation
  error: command 'C:\\Users\\shiro\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2

  ----------------------------------------
  Failed building wheel for implicit
  Running setup.py clean for implicit
Failed to build implicit
Installing collected packages: implicit
  Running setup.py install for implicit ... error
    Complete output from command c:\python27\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\shiro\\appdata\\local\\temp\\pip-install-civoat\\implicit\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record c:\users\shiro\appdata\local\temp\pip-record-bhxxuv\install-record.txt --single-version-externally-managed --compile:
    WARNING:root:The nvcc binary could not be located in your $PATH. Either add it to your path, or set $CUDAHOME to enable CUDA extensions
    Failed to find CUDA toolkit. Building without GPU acceleration.
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-2.7
    creating build\lib.win-amd64-2.7\implicit
    copying implicit\als.py -> build\lib.win-amd64-2.7\implicit
    copying implicit\approximate_als.py -> build\lib.win-amd64-2.7\implicit
    copying implicit\nearest_neighbours.py -> build\lib.win-amd64-2.7\implicit
    copying implicit\recommender_base.py -> build\lib.win-amd64-2.7\implicit
    copying implicit\utils.py -> build\lib.win-amd64-2.7\implicit
    copying implicit\__init__.py -> build\lib.win-amd64-2.7\implicit
    creating build\lib.win-amd64-2.7\implicit\cuda
    copying implicit\cuda\__init__.py -> build\lib.win-amd64-2.7\implicit\cuda
    creating build\lib.win-amd64-2.7\implicit\datasets
    copying implicit\datasets\lastfm.py -> build\lib.win-amd64-2.7\implicit\datasets
    copying implicit\datasets\million_song_dataset.py -> build\lib.win-amd64-2.7\implicit\datasets
    copying implicit\datasets\movielens.py -> build\lib.win-amd64-2.7\implicit\datasets
    copying implicit\datasets\sketchfab.py -> build\lib.win-amd64-2.7\implicit\datasets
    copying implicit\datasets\_download.py -> build\lib.win-amd64-2.7\implicit\datasets
    copying implicit\datasets\__init__.py -> build\lib.win-amd64-2.7\implicit\datasets
    running build_ext
    building 'implicit._als' extension
    creating build\temp.win-amd64-2.7
    creating build\temp.win-amd64-2.7\Release
    creating build\temp.win-amd64-2.7\Release\implicit
    C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Ic:\python27\include -Ic:\python27\PC /Tpimplicit\_als.cpp /Fobuild\temp.win-amd64-2.7\Release\implicit\_als.obj /O2 /openmp
    _als.cpp
    C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Include\xlocale(342) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
    implicit\_als.cpp(3637) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
    implicit\_als.cpp(3919) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
    implicit\_als.cpp(4404) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(4405) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(4850) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(5568) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(5569) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(6732) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(6733) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(7178) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(7896) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(7897) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(9060) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(9061) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(9506) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(10224) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(10225) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(11678) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
    implicit\_als.cpp(11960) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
    implicit\_als.cpp(12468) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(12469) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(12854) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(12999) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(13040) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(13526) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(13527) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(14584) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(14585) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(14970) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(15115) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(15156) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(15642) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(15643) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(16700) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(16701) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(17086) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(17231) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(17272) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(17758) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(17759) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(19070) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
    implicit\_als.cpp(19352) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
    implicit\_als.cpp(19842) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(19843) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(19844) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(20148) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(20652) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(20653) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(20654) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(21462) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(21463) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(21464) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(21768) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(22272) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(22273) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(22274) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(23082) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(23083) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(23084) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(23388) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    implicit\_als.cpp(23892) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(23893) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    implicit\_als.cpp(23894) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
    C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\python27\libs /LIBPATH:c:\python27\PCbuild\amd64 /LIBPATH:c:\python27\PC\VS9.0\amd64 /EXPORT:init_als build\temp.win-amd64-2.7\Release\implicit\_als.obj /OUT:build\lib.win-amd64-2.7\implicit\_als.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\implicit\_als.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\implicit\_als.pyd.manifest
    _als.obj : warning LNK4197: export 'init_als' specified multiple times; using first specification
       Creating library build\temp.win-amd64-2.7\Release\implicit\_als.lib and object build\temp.win-amd64-2.7\Release\implicit\_als.exp
    C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\WinSDK\Bin\x64\mt.exe -nologo -manifest build\temp.win-amd64-2.7\Release\implicit\_als.pyd.manifest -outputresource:build\lib.win-amd64-2.7\implicit\_als.pyd;2
    building 'implicit._nearest_neighbours' extension
    C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Iimplicit -Ic:\python27\include -Ic:\python27\PC /Tpimplicit\_nearest_neighbours.cpp /Fobuild\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.obj /O2 /openmp
    _nearest_neighbours.cpp
    C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Include\xlocale(342) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
    implicit\_nearest_neighbours.cpp(2867) : warning C4244: '=' : conversion from 'long' to 'char', possible loss of data
    implicit\_nearest_neighbours.cpp(3187) : warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
    implicit\_nearest_neighbours.cpp(3604) : warning C4267: '=' : conversion from 'size_t' to 'int', possible loss of data
    implicit\_nearest_neighbours.cpp(4027) : warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
    implicit\_nearest_neighbours.cpp(4444) : warning C4267: '=' : conversion from 'size_t' to 'int', possible loss of data
    C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:c:\python27\libs /LIBPATH:c:\python27\PCbuild\amd64 /LIBPATH:c:\python27\PC\VS9.0\amd64 /EXPORT:init_nearest_neighbours build\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.obj /OUT:build\lib.win-amd64-2.7\implicit\_nearest_neighbours.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.pyd.manifest
    _nearest_neighbours.obj : warning LNK4197: export 'init_nearest_neighbours' specified multiple times; using first specification
       Creating library build\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.lib and object build\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.exp
    C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\WinSDK\Bin\x64\mt.exe -nologo -manifest build\temp.win-amd64-2.7\Release\implicit\_nearest_neighbours.pyd.manifest -outputresource:build\lib.win-amd64-2.7\implicit\_nearest_neighbours.pyd;2
    building 'implicit.bpr' extension
    C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Iimplicit -Ic:\python27\include -Ic:\python27\PC /Tpimplicit\bpr.cpp /Fobuild\temp.win-amd64-2.7\Release\implicit\bpr.obj /O2 /openmp
    bpr.cpp
    C:\Users\shiro\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Include\xlocale(342) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
    implicit\bpr.cpp(954) : error C2039: 'mt19937' : is not a member of 'std'
    implicit\bpr.cpp(954) : error C2065: 'mt19937' : undeclared identifier
    implicit\bpr.cpp(955) : error C2039: 'uniform_int_distribution' : is not a member of 'std'
    implicit\bpr.cpp(955) : error C2065: 'uniform_int_distribution' : undeclared identifier
    implicit\bpr.cpp(955) : error C2062: type 'long' unexpected
    implicit\bpr.cpp(956) : error C2143: syntax error : missing ';' before '}'
    implicit\bpr.cpp(966) : error C2143: syntax error : missing ';' before '{'
    implicit\bpr.cpp(981) : error C2143: syntax error : missing ';' before '}'
    implicit\bpr.cpp(991) : error C2143: syntax error : missing ';' before '{'
    implicit\bpr.cpp(994) : error C2143: syntax error : missing ';' before '}'
    implicit\bpr.cpp(1004) : error C2143: syntax error : missing ';' before '{'
    implicit\bpr.cpp(1017) : error C2143: syntax error : missing ';' before '}'
    implicit\bpr.cpp(1027) : error C2143: syntax error : missing ';' before '{'
    implicit\bpr.cpp(1032) : error C2059: syntax error : ')'
    implicit\bpr.cpp(1033) : error C2143: syntax error : missing ';' before '}'
    implicit\bpr.cpp(1045) : error C2143: syntax error : missing ';' before '{'
    implicit\bpr.cpp(1047) : error C2143: syntax error : missing ';' before '}'
    implicit\bpr.cpp(1060) : error C2143: syntax error : missing ';' before '{'
    implicit\bpr.cpp(1062) : error C2143: syntax error : missing ';' before '}'
    implicit\bpr.cpp(1074) : error C2143: syntax error : missing ';' before '{'
    implicit\bpr.cpp(1075) : error C2059: syntax error : ')'
    implicit\bpr.cpp(1076) : error C2059: syntax error : ')'
    implicit\bpr.cpp(1077) : error C2059: syntax error : ','
    implicit\bpr.cpp(1077) : error C2059: syntax error : ')'
    implicit\bpr.cpp(1078) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1079) : error C2059: syntax error : ','
    implicit\bpr.cpp(1079) : error C2059: syntax error : ')'
    implicit\bpr.cpp(1080) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1081) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1082) : error C2143: syntax error : missing ';' before '}'
    implicit\bpr.cpp(1094) : error C2143: syntax error : missing ';' before '{'
    implicit\bpr.cpp(1096) : error C2143: syntax error : missing ';' before '}'
    implicit\bpr.cpp(1165) : error C2065: 'attr_name' : undeclared identifier
    implicit\bpr.cpp(1165) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\python27\include\object.h(108) : see declaration of 'PyObject'
    implicit\bpr.cpp(1165) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1178) : error C2065: 'kw_name' : undeclared identifier
    implicit\bpr.cpp(1178) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\python27\include\object.h(108) : see declaration of 'PyObject'
    implicit\bpr.cpp(1178) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1181) : error C2065: 'argnames' : undeclared identifier
    implicit\bpr.cpp(1181) : error C2059: syntax error : ']'
    implicit\bpr.cpp(1182) : error C2065: 'kwds2' : undeclared identifier
    implicit\bpr.cpp(1182) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\python27\include\object.h(108) : see declaration of 'PyObject'
    implicit\bpr.cpp(1182) : error C2146: syntax error : missing ',' before identifier 'values'
    implicit\bpr.cpp(1182) : error C2065: 'values' : undeclared identifier
    implicit\bpr.cpp(1182) : error C2059: syntax error : ']'
    implicit\bpr.cpp(1183) : error C2146: syntax error : missing ',' before identifier 'function_name'
    implicit\bpr.cpp(1183) : error C2065: 'function_name' : undeclared identifier
    implicit\bpr.cpp(1183) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1190) : error C2065: 'arg' : undeclared identifier
    implicit\bpr.cpp(1190) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\python27\include\object.h(108) : see declaration of 'PyObject'
    implicit\bpr.cpp(1190) : error C2146: syntax error : missing ',' before identifier 'kw'
    implicit\bpr.cpp(1190) : error C2065: 'kw' : undeclared identifier
    implicit\bpr.cpp(1190) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1213) : error C2065: 'type' : undeclared identifier
    implicit\bpr.cpp(1213) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\python27\include\object.h(108) : see declaration of 'PyObject'
    implicit\bpr.cpp(1213) : error C2146: syntax error : missing ',' before identifier 'value'
    implicit\bpr.cpp(1213) : error C2065: 'value' : undeclared identifier
    implicit\bpr.cpp(1213) : error C2146: syntax error : missing ',' before identifier 'tb'
    implicit\bpr.cpp(1213) : error C2065: 'tb' : undeclared identifier
    implicit\bpr.cpp(1213) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1214) : error C2065: 'type' : undeclared identifier
    implicit\bpr.cpp(1214) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\python27\include\object.h(108) : see declaration of 'PyObject'
    implicit\bpr.cpp(1214) : error C2146: syntax error : missing ',' before identifier 'value'
    implicit\bpr.cpp(1214) : error C2065: 'value' : undeclared identifier
    implicit\bpr.cpp(1214) : error C2146: syntax error : missing ',' before identifier 'tb'
    implicit\bpr.cpp(1214) : error C2065: 'tb' : undeclared identifier
    implicit\bpr.cpp(1214) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1232) : error C2065: 'value' : undeclared identifier
    implicit\bpr.cpp(1232) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\python27\include\object.h(108) : see declaration of 'PyObject'
    implicit\bpr.cpp(1232) : error C2146: syntax error : missing ',' before identifier 'tb'
    implicit\bpr.cpp(1232) : error C2065: 'tb' : undeclared identifier
    implicit\bpr.cpp(1232) : error C2146: syntax error : missing ',' before identifier 'cause'
    implicit\bpr.cpp(1232) : error C2065: 'cause' : undeclared identifier
    implicit\bpr.cpp(1232) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1246) : error C2065: 'args' : undeclared identifier
    implicit\bpr.cpp(1246) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\python27\include\object.h(108) : see declaration of 'PyObject'
    implicit\bpr.cpp(1246) : error C2146: syntax error : missing ',' before identifier 'nargs'
    implicit\bpr.cpp(1246) : error C2065: 'nargs' : undeclared identifier
    implicit\bpr.cpp(1246) : error C2146: syntax error : missing ',' before identifier 'kwargs'
    implicit\bpr.cpp(1246) : error C2065: 'kwargs' : undeclared identifier
    implicit\bpr.cpp(1246) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1254) : error C2065: 'arg' : undeclared identifier
    implicit\bpr.cpp(1254) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\python27\include\object.h(108) : see declaration of 'PyObject'
    implicit\bpr.cpp(1254) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1258) : error C2065: 'arg' : undeclared identifier
    implicit\bpr.cpp(1258) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\python27\include\object.h(108) : see declaration of 'PyObject'
    implicit\bpr.cpp(1258) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1269) : error C2065: 'op2' : undeclared identifier
    implicit\bpr.cpp(1269) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\python27\include\object.h(108) : see declaration of 'PyObject'
    implicit\bpr.cpp(1269) : error C2146: syntax error : missing ',' before identifier 'intval'
    implicit\bpr.cpp(1269) : error C2065: 'intval' : undeclared identifier
    implicit\bpr.cpp(1269) : error C2146: syntax error : missing ',' before identifier 'inplace'
    implicit\bpr.cpp(1269) : error C2065: 'inplace' : undeclared identifier
    implicit\bpr.cpp(1269) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1277) : error C2065: 'op2' : undeclared identifier
    implicit\bpr.cpp(1277) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\python27\include\object.h(108) : see declaration of 'PyObject'
    implicit\bpr.cpp(1277) : error C2146: syntax error : missing ',' before identifier 'intval'
    implicit\bpr.cpp(1277) : error C2065: 'intval' : undeclared identifier
    implicit\bpr.cpp(1277) : error C2146: syntax error : missing ',' before identifier 'inplace'
    implicit\bpr.cpp(1277) : error C2065: 'inplace' : undeclared identifier
    implicit\bpr.cpp(1277) : error C2143: syntax error : missing ',' before ')'
    implicit\bpr.cpp(1277) : fatal error C1003: error count exceeds 100; stopping compilation
    error: command 'C:\\Users\\shiro\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2

    ----------------------------------------
Command "c:\python27\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\shiro\\appdata\\local\\temp\\pip-install-civoat\\implicit\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record c:\users\shiro\appdata\local\temp\pip-record-bhxxuv\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in c:\users\shiro\appdata\local\temp\pip-install-civoat\implicit\
benfred commented 6 years ago

So - it looks like it's failing because I'm using some the random number generation features from c++11 (https://github.com/benfred/implicit/blob/master/implicit/bpr.pyx#L23) but you're using a compiler that doesn't support c++11 (Visual C++ for Python v9.0 - which I think came is the same as in visual studio 2008).

You can download a newer compiler here: https://visualstudio.microsoft.com/visual-cpp-build-tools/ that should work.

Alternatively - If you don't need the BPR model, you can clone this source code and modify the setup.py file to not try to compile bpr.pyx (in this line https://github.com/benfred/implicit/blob/master/setup.py#L55).

dimitris93 commented 6 years ago

What am I supposed to install then?

If you look at (https://wiki.python.org/moin/WindowsCompilers#Which_Microsoft_Visual_C.2B-.2B-_compiler_to_use_with_a_specific_Python_version_.3F) it says that you are supposed to use Visual C++ 9.0 for CPython 2.7. I am using Python 2.7.15. What should I download and install? Can I get a direct link?

Or is there some version that doesn't use c++11 features or something? Or you have a .whl file for me?

benfred commented 6 years ago

I believe the link is here: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15 - but if you're using Python 2.7, I don't think that just upgrading the compiler is sufficient =( See this thread for more discussion on why: https://github.com/conda-forge/implicit-feedstock/pull/4#issuecomment-364586216

Can you try installing by running this command? pip install implicit==0.2.13 This will install the last version of implicit that works with python 2.7 on windows.

I've updated the README to reflect that we don't support Python 2.7 on windows anymore

dimitris93 commented 6 years ago

Ok. Looks like installation was successful with this older version. Is it really impossible to produce random numbers without c++11 support? Seems really strange.

Thanks for your help. It is really late so I will continue working tomorrow.

benfred commented 6 years ago

I'm open to patches here - but the problem is in generating random numbers in a thread safe fashion. The c rand function isn't thread safe, and the rand_r version isn't available on windows (#82). The c++11 versions are the easiest way of getting this going that I found.

I know lightfm handles this by copying the rand_r implementation from the musl stdlib (https://github.com/lyst/lightfm/blob/master/lightfm/_lightfm_fast.pyx.template#L64) - but that seems like overkill for this.

dimitris93 commented 6 years ago

Is it really an overkill? It looks alright to me if you can copy a similar rand_r implementation from some other library.

To me it looks like using c++11 features just for random number generation, is an overkill. Especially when that breaks compatibility for python 2.7.

srinivascnu166 commented 4 years ago

Screenshot (21) can I know what is this cause of this error?

DilaraAlbayrak commented 3 years ago

@srinivascnu166 did you solve your problem? I have the same problem.

Amigo96 commented 3 years ago

python3.6 -m pip install Cython

this solve the problem for me ! I'm using linux mint 19.1 | python 3.6

python3.6 -m pip install implicit Collecting implicit Downloading https://files.pythonhosted.org/packages/96/68/7497a86926065cde8e433bd3b704b8b08db154afbaec4abf9dda4ad15b40/implicit-0.4.8.tar.gz (1.1MB) 100% |████████████████████████████████| 1.1MB 571kB/s Collecting numpy (from implicit) Using cached https://files.pythonhosted.org/packages/45/b2/6c7545bb7a38754d63048c7696804a0d947328125d81bf12beaa692c3ae3/numpy-1.19.5-cp36-cp36m-manylinux1_x86_64.whl Collecting scipy>=0.16 (from implicit) Using cached https://files.pythonhosted.org/packages/c8/89/63171228d5ced148f5ced50305c89e8576ffc695a90b58fe5bb602b910c2/scipy-1.5.4-cp36-cp36m-manylinux1_x86_64.whl Collecting tqdm>=4.27 (from implicit) Downloading https://files.pythonhosted.org/packages/63/f3/b7a1b8e40fd1bd049a34566eb353527bb9b8e9b98f8b6cf803bb64d8ce95/tqdm-4.62.3-py2.py3-none-any.whl (76kB) 100% |████████████████████████████████| 81kB 851kB/s Building wheels for collected packages: implicit Running setup.py bdist_wheel for implicit ... error Complete output from command /usr/bin/python3.6 -u -c "import setuptools, tokenize;file='/tmp/pip-build-2zdr8nza/implicit/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/tmp_94zyrtypip-wheel- --python-tag cp36: WARNING:root:The nvcc binary could not be located in your $PATH. Either add it to your path, or set $CUDAHOME to enable CUDA extensions Failed to find CUDA toolkit. Building without GPU acceleration. running bdist_wheel running build running build_py creating build creating build/lib.linux-x86_64-3.6 creating build/lib.linux-x86_64-3.6/implicit copying implicit/init.py -> build/lib.linux-x86_64-3.6/implicit copying implicit/bpr.py -> build/lib.linux-x86_64-3.6/implicit copying implicit/als.py -> build/lib.linux-x86_64-3.6/implicit copying implicit/utils.py -> build/lib.linux-x86_64-3.6/implicit copying implicit/nearest_neighbours.py -> build/lib.linux-x86_64-3.6/implicit copying implicit/approximate_als.py -> build/lib.linux-x86_64-3.6/implicit creating build/lib.linux-x86_64-3.6/implicit/gpu copying implicit/gpu/init.py -> build/lib.linux-x86_64-3.6/implicit/gpu copying implicit/gpu/bpr.py -> build/lib.linux-x86_64-3.6/implicit/gpu copying implicit/gpu/als.py -> build/lib.linux-x86_64-3.6/implicit/gpu copying implicit/gpu/matrix_factorization_base.py -> build/lib.linux-x86_64-3.6/implicit/gpu creating build/lib.linux-x86_64-3.6/implicit/cpu copying implicit/cpu/init.py -> build/lib.linux-x86_64-3.6/implicit/cpu copying implicit/cpu/als.py -> build/lib.linux-x86_64-3.6/implicit/cpu creating build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/sketchfab.py -> build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/init.py -> build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/_download.py -> build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/movielens.py -> build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/million_song_dataset.py -> build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/reddit.py -> build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/lastfm.py -> build/lib.linux-x86_64-3.6/implicit/datasets running build_ext building 'implicit._nearest_neighbours' extension error: unknown file type '.pyx' (from 'implicit/_nearest_neighbours.pyx')


Failed building wheel for implicit Running setup.py clean for implicit Failed to build implicit Installing collected packages: numpy, scipy, tqdm, implicit Running setup.py install for implicit ... error Complete output from command /usr/bin/python3.6 -u -c "import setuptools, tokenize;file='/tmp/pip-build-2zdr8nza/implicit/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-791zv4z1-record/install-record.txt --single-version-externally-managed --compile --user --prefix=: WARNING:root:The nvcc binary could not be located in your $PATH. Either add it to your path, or set $CUDAHOME to enable CUDA extensions Failed to find CUDA toolkit. Building without GPU acceleration. running install running build running build_py creating build creating build/lib.linux-x86_64-3.6 creating build/lib.linux-x86_64-3.6/implicit copying implicit/init.py -> build/lib.linux-x86_64-3.6/implicit copying implicit/bpr.py -> build/lib.linux-x86_64-3.6/implicit copying implicit/als.py -> build/lib.linux-x86_64-3.6/implicit copying implicit/utils.py -> build/lib.linux-x86_64-3.6/implicit copying implicit/nearest_neighbours.py -> build/lib.linux-x86_64-3.6/implicit copying implicit/approximate_als.py -> build/lib.linux-x86_64-3.6/implicit creating build/lib.linux-x86_64-3.6/implicit/gpu copying implicit/gpu/init.py -> build/lib.linux-x86_64-3.6/implicit/gpu copying implicit/gpu/bpr.py -> build/lib.linux-x86_64-3.6/implicit/gpu copying implicit/gpu/als.py -> build/lib.linux-x86_64-3.6/implicit/gpu copying implicit/gpu/matrix_factorization_base.py -> build/lib.linux-x86_64-3.6/implicit/gpu creating build/lib.linux-x86_64-3.6/implicit/cpu copying implicit/cpu/init.py -> build/lib.linux-x86_64-3.6/implicit/cpu copying implicit/cpu/als.py -> build/lib.linux-x86_64-3.6/implicit/cpu creating build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/sketchfab.py -> build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/init.py -> build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/_download.py -> build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/movielens.py -> build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/million_song_dataset.py -> build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/reddit.py -> build/lib.linux-x86_64-3.6/implicit/datasets copying implicit/datasets/lastfm.py -> build/lib.linux-x86_64-3.6/implicit/datasets running build_ext building 'implicit._nearest_neighbours' extension error: unknown file type '.pyx' (from 'implicit/_nearest_neighbours.pyx')

----------------------------------------

Command "/usr/bin/python3.6 -u -c "import setuptools, tokenize;file='/tmp/pip-build-2zdr8nza/implicit/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-791zv4z1-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-2zdr8nza/implicit/

Amigo96 commented 3 years ago

@srinivascnu166 did you solve your problem? I have the same problem.

python3.6 -m pip install Cython (this command solve my problem with installing implicit )

Laurelea commented 3 years ago

@srinivascnu166 did you solve your problem? I have the same problem.

python3.6 -m pip install Cython (this command solve my problem with installing implicit )

Thanks a lot! That's the only thing that helped. 1) python3 -m pip install Cython 2) conda install implicit -c conda-forge -n