6

I am using the below command while installing surprise package. I have got error messages while installing and I am not able to understand. I need help to install this package successfully. pip install scikit-surprise

one of the error code in the last says that Microsoft visual C++ 14 or greater is required but I have 14 version installed so the requirement should be satisfied. screen shot from control panel

(base) C:\Users\S Vishal>pip install scikit-surprise
Collecting scikit-surprise
  Using cached scikit-surprise-1.1.1.tar.gz (11.8 MB)
Requirement already satisfied: joblib>=0.11 in c:\programdata\anaconda3\lib\site-packages (from scikit-surprise) (0.17.0)
Requirement already satisfied: numpy>=1.11.2 in c:\programdata\anaconda3\lib\site-packages (from scikit-surprise) (1.19.2)
Requirement already satisfied: scipy>=1.0.0 in c:\programdata\anaconda3\lib\site-packages (from scikit-surprise) (1.5.2)
Requirement already satisfied: six>=1.10.0 in c:\programdata\anaconda3\lib\site-packages (from scikit-surprise) (1.15.0)
Building wheels for collected packages: scikit-surprise
  Building wheel for scikit-surprise (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: 'C:\ProgramData\Anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\S Vishal\\AppData\\Local\\Temp\\pip-install-9wlw55w2\\scikit-surprise\\setup.py'"'"'; __file__='"'"'C:\\Users\\S Vishal\\AppData\\Local\\Temp\\pip-install-9wlw55w2\\scikit-surprise\\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\S Vishal\AppData\Local\Temp\pip-wheel-8n8d7erc'
       cwd: C:\Users\S Vishal\AppData\Local\Temp\pip-install-9wlw55w2\scikit-surprise\
  Complete output (49 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-3.8
  creating build\lib.win-amd64-3.8\surprise
  copying surprise\accuracy.py -> build\lib.win-amd64-3.8\surprise
  copying surprise\builtin_datasets.py -> build\lib.win-amd64-3.8\surprise
  copying surprise\dataset.py -> build\lib.win-amd64-3.8\surprise
  copying surprise\dump.py -> build\lib.win-amd64-3.8\surprise
  copying surprise\reader.py -> build\lib.win-amd64-3.8\surprise
  copying surprise\trainset.py -> build\lib.win-amd64-3.8\surprise
  copying surprise\utils.py -> build\lib.win-amd64-3.8\surprise
  copying surprise\__init__.py -> build\lib.win-amd64-3.8\surprise
  copying surprise\__main__.py -> build\lib.win-amd64-3.8\surprise
  creating build\lib.win-amd64-3.8\surprise\model_selection
  copying surprise\model_selection\search.py -> build\lib.win-amd64-3.8\surprise\model_selection
  copying surprise\model_selection\split.py -> build\lib.win-amd64-3.8\surprise\model_selection
  copying surprise\model_selection\validation.py -> build\lib.win-amd64-3.8\surprise\model_selection
  copying surprise\model_selection\__init__.py -> build\lib.win-amd64-3.8\surprise\model_selection
  creating build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\algo_base.py -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\baseline_only.py -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\knns.py -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\predictions.py -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\random_pred.py -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\__init__.py -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  running egg_info
  writing scikit_surprise.egg-info\PKG-INFO
  writing dependency_links to scikit_surprise.egg-info\dependency_links.txt
  writing entry points to scikit_surprise.egg-info\entry_points.txt
  writing requirements to scikit_surprise.egg-info\requires.txt
  writing top-level names to scikit_surprise.egg-info\top_level.txt
  reading manifest file 'scikit_surprise.egg-info\SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  writing manifest file 'scikit_surprise.egg-info\SOURCES.txt'
  copying surprise\similarities.c -> build\lib.win-amd64-3.8\surprise
  copying surprise\similarities.pyx -> build\lib.win-amd64-3.8\surprise
  copying surprise\prediction_algorithms\co_clustering.c -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\matrix_factorization.c -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\optimize_baselines.c -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\slope_one.c -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\co_clustering.pyx -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\matrix_factorization.pyx -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\optimize_baselines.pyx -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  copying surprise\prediction_algorithms\slope_one.pyx -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
  running build_ext
  building 'surprise.similarities' extension
  error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
  ----------------------------------------
  ERROR: Failed building wheel for scikit-surprise
  Running setup.py clean for scikit-surprise
Failed to build scikit-surprise
Installing collected packages: scikit-surprise
    Running setup.py install for scikit-surprise ... error
    ERROR: Command errored out with exit status 1:
     command: 'C:\ProgramData\Anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\S Vishal\\AppData\\Local\\Temp\\pip-install-9wlw55w2\\scikit-surprise\\setup.py'"'"'; __file__='"'"'C:\\Users\\S Vishal\\AppData\\Local\\Temp\\pip-install-9wlw55w2\\scikit-surprise\\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\S Vishal\AppData\Local\Temp\pip-record-p24eovcb\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\ProgramData\Anaconda3\Include\scikit-surprise'
         cwd: C:\Users\S Vishal\AppData\Local\Temp\pip-install-9wlw55w2\scikit-surprise\
    Complete output (49 lines):
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.8
    creating build\lib.win-amd64-3.8\surprise
    copying surprise\accuracy.py -> build\lib.win-amd64-3.8\surprise
    copying surprise\builtin_datasets.py -> build\lib.win-amd64-3.8\surprise
    copying surprise\dataset.py -> build\lib.win-amd64-3.8\surprise
    copying surprise\dump.py -> build\lib.win-amd64-3.8\surprise
    copying surprise\reader.py -> build\lib.win-amd64-3.8\surprise
    copying surprise\trainset.py -> build\lib.win-amd64-3.8\surprise
    copying surprise\utils.py -> build\lib.win-amd64-3.8\surprise
    copying surprise\__init__.py -> build\lib.win-amd64-3.8\surprise
    copying surprise\__main__.py -> build\lib.win-amd64-3.8\surprise
    creating build\lib.win-amd64-3.8\surprise\model_selection
    copying surprise\model_selection\search.py -> build\lib.win-amd64-3.8\surprise\model_selection
    copying surprise\model_selection\split.py -> build\lib.win-amd64-3.8\surprise\model_selection
    copying surprise\model_selection\validation.py -> build\lib.win-amd64-3.8\surprise\model_selection
    copying surprise\model_selection\__init__.py -> build\lib.win-amd64-3.8\surprise\model_selection
    creating build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\algo_base.py -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\baseline_only.py -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\knns.py -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\predictions.py -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\random_pred.py -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\__init__.py -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    running egg_info
    writing scikit_surprise.egg-info\PKG-INFO
    writing dependency_links to scikit_surprise.egg-info\dependency_links.txt
    writing entry points to scikit_surprise.egg-info\entry_points.txt
    writing requirements to scikit_surprise.egg-info\requires.txt
    writing top-level names to scikit_surprise.egg-info\top_level.txt
    reading manifest file 'scikit_surprise.egg-info\SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file 'scikit_surprise.egg-info\SOURCES.txt'
    copying surprise\similarities.c -> build\lib.win-amd64-3.8\surprise
    copying surprise\similarities.pyx -> build\lib.win-amd64-3.8\surprise
    copying surprise\prediction_algorithms\co_clustering.c -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\matrix_factorization.c -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\optimize_baselines.c -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\slope_one.c -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\co_clustering.pyx -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\matrix_factorization.pyx -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\optimize_baselines.pyx -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    copying surprise\prediction_algorithms\slope_one.pyx -> build\lib.win-amd64-3.8\surprise\prediction_algorithms
    running build_ext
    building 'surprise.similarities' extension
    error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'C:\ProgramData\Anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\S Vishal\\AppData\\Local\\Temp\\pip-install-9wlw55w2\\scikit-surprise\\setup.py'"'"'; __file__='"'"'C:\\Users\\S Vishal\\AppData\\Local\\Temp\\pip-install-9wlw55w2\\scikit-surprise\\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\S Vishal\AppData\Local\Temp\pip-record-p24eovcb\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\ProgramData\Anaconda3\Include\scikit-surprise' Check the logs for full command output.
Vishal S
  • 61
  • 1
  • 2

2 Answers2

7

Have you tried installing with Anaconda?

Launch your Anaconda command prompt and run:

conda install -c conda-forge scikit-surprise

I hope this sorts out your issue.

  • 1
    Thanks a lot Storm, I have run the command which you told and got the below output. I tried importing the surprise package and it works now. Few of the packages are creating inconsistency. – Vishal S Jan 14 '21 at 13:45
  • @VishalS So just to check it worked for you correct? – Storm Rhoda Jan 14 '21 at 14:40
0

The key error is in Microsoft Visual C++ 14.0 or greater is required. You have to download supporting build tools for C++(sometimes just downloading it from MS website wont work), if you are using visual studio 2022 for python development, you have to modify your installer and download missing build tools, I think its titled "Desktop Development with C++ (not just python developer/IDE) and check almost all tools", however it consumes bit of system space, however it sorted this problem of installing many packages in python which was not working otherwise.

Ravi
  • 11
  • 2