安装Surprise包时出现错误

6

我在安装surprise包时使用以下命令。但是,在安装过程中出现错误,我无法理解。我需要帮助成功安装此软件包。pip install scikit-surprise

最后的一个错误代码之一指出需要Microsoft Visual C++ 14或更高版本,但我已经安装了14版本,所以要求应该得到满足。 控制面板截图

(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.
2个回答

7
你尝试过使用Anaconda安装吗?
打开你的Anaconda命令提示符并运行以下命令:
conda install -c conda-forge scikit-surprise

我希望这可以解决您的问题。

1
非常感谢你,Storm。我已经运行了你告诉我的命令,并得到了以下输出。我尝试导入surprise包,现在它可以工作了。有一些包会产生不一致性。 - Vishal S
@VishalS,所以你确认它对你有效了吗? - Storm Rhoda

0
关键错误在于需要 Microsoft Visual C++ 14.0 或更高版本。如果您正在使用 Visual Studio 2022 进行 Python 开发,则必须下载支持的 C++ 构建工具(有时仅从 MS 网站下载可能不起作用)。您需要修改安装程序并下载缺失的构建工具,我认为它的标题是“桌面开发与 C++(不仅仅是 Python 开发者/IDE)并检查几乎所有工具”,但它会占用一些系统空间,但可以解决无法正常工作的 Python 安装问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接