首页 > 解决方案 > 我无法安装 mlrose 包

问题描述

每当我 pip install mlrose 时,它​​都会向我显示以下错误。我是机器学习的新手,因此将不胜感激。

Microsoft Windows [版本 10.0.17134.1069] (c) 2018 Microsoft Corporation。版权所有。

C:\Users\admin>pip 安装 mlrose

Collecting mlrose
  Using cached https://files.pythonhosted.org/packages/0d/f8/79e77a40f6e8988e3ecc9ead8a28024ee43df9c99fce2209037c9e6f9e4a/mlrose-1.3.0-py3-none-any.whl
Requirement already satisfied: scipy in c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages (from mlrose) (1.3.2)
Requirement already satisfied: numpy in c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages (from mlrose) (1.17.4)
Processing c:\users\admin\appdata\local\pip\cache\wheels\76\03\bb\589d421d27431bcd2c6da284d5f2286c8e3b2ea3cf1594c074\sklearn-0.0-py2.py3-none-any.whl
Collecting scikit-learn
  Using cached https://files.pythonhosted.org/packages/1e/ce/9d8c88e68af0a5b5c5d78d8d2b7bcadfd45e1d6afc863ccb9aee30765b06/scikit-learn-0.21.3.tar.gz
Requirement already satisfied: joblib>=0.11 in c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages (from scikit-learn->sklearn->mlrose) (0.14.0)
Building wheels for collected packages: scikit-learn
  Building wheel for scikit-learn (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: 'c:\users\admin\appdata\local\programs\python\python38-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-8ooeas1k\\scikit-learn\\setup.py'"'"'; __file__='"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-8ooeas1k\\scikit-learn\\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\Public\Documents\Wondershare\CreatorTemp\pip-wheel-jm5hdzgz' --python-tag cp38
       cwd: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-8ooeas1k\scikit-learn\
  Complete output (37 lines):
  Partial import of sklearn during the build process.
  No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-8ooeas1k\scikit-learn\setup.py", line 290, in <module>
      setup_package()
    File "C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-8ooeas1k\scikit-learn\setup.py", line 286, in setup_package
      setup(**metadata)
    File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\numpy\distutils\core.py", line 137, in setup
      config = configuration()
    File "C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-8ooeas1k\scikit-learn\setup.py", line 174, in configuration
      config.add_subpackage('sklearn')
    File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\numpy\distutils\misc_util.py", line 1033, in add_subpackage
      config_list = self.get_subpackage(subpackage_name, subpackage_path,
    File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\numpy\distutils\misc_util.py", line 999, in get_subpackage
      config = self._get_configuration_from_setup_py(
    File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\numpy\distutils\misc_util.py", line 941, in _get_configuration_from_setup_py
      config = setup_module.configuration(*args)
    File "sklearn\setup.py", line 76, in configuration
      maybe_cythonize_extensions(top_path, config)
    File "C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-8ooeas1k\scikit-learn\sklearn\_build_utils\__init__.py", line 42, in maybe_cythonize_extensions
      with_openmp = check_openmp_support()
    File "C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-8ooeas1k\scikit-learn\sklearn\_build_utils\openmp_helpers.py", line 83, in check_openmp_support
      ccompiler.compile(['test_openmp.c'], output_dir='objects',
    File "c:\users\admin\appdata\local\programs\python\python38-32\lib\distutils\_msvccompiler.py", line 360, in compile
      self.initialize()
    File "c:\users\admin\appdata\local\programs\python\python38-32\lib\distutils\_msvccompiler.py", line 253, in initialize
      vc_env = _get_vc_env(plat_spec)
    File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\setuptools\msvc.py", line 171, in msvc14_get_vc_env
      return EnvironmentInfo(plat_spec, vc_min_ver=14.0).return_env()
    File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\setuptools\msvc.py", line 1075, in __init__
      self.si = SystemInfo(self.ri, vc_ver)
    File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\setuptools\msvc.py", line 547, in __init__
      vc_ver or self._find_latest_available_vs_ver())
    File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\setuptools\msvc.py", line 561, in _find_latest_available_vs_ver
      raise distutils.errors.DistutilsPlatformError(
  distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
  ----------------------------------------
  ERROR: Failed building wheel for scikit-learn
  Running setup.py clean for scikit-learn
Failed to build scikit-learn
Installing collected packages: scikit-learn, sklearn, mlrose
    Running setup.py install for scikit-learn ... error
    ERROR: Command errored out with exit status 1:
     command: 'c:\users\admin\appdata\local\programs\python\python38-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-8ooeas1k\\scikit-learn\\setup.py'"'"'; __file__='"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-8ooeas1k\\scikit-learn\\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\Public\Documents\Wondershare\CreatorTemp\pip-record-x04bx8yu\install-record.txt' --single-version-externally-managed --compile
         cwd: C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-8ooeas1k\scikit-learn\
    Complete output (37 lines):
    Partial import of sklearn during the build process.
    No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-8ooeas1k\scikit-learn\setup.py", line 290, in <module>
        setup_package()
      File "C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-8ooeas1k\scikit-learn\setup.py", line 286, in setup_package
        setup(**metadata)
      File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\numpy\distutils\core.py", line 137, in setup
        config = configuration()
      File "C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-8ooeas1k\scikit-learn\setup.py", line 174, in configuration
        config.add_subpackage('sklearn')
      File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\numpy\distutils\misc_util.py", line 1033, in add_subpackage
        config_list = self.get_subpackage(subpackage_name, subpackage_path,
      File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\numpy\distutils\misc_util.py", line 999, in get_subpackage
        config = self._get_configuration_from_setup_py(
      File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\numpy\distutils\misc_util.py", line 941, in _get_configuration_from_setup_py
        config = setup_module.configuration(*args)
      File "sklearn\setup.py", line 76, in configuration
        maybe_cythonize_extensions(top_path, config)
      File "C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-8ooeas1k\scikit-learn\sklearn\_build_utils\__init__.py", line 42, in maybe_cythonize_extensions
        with_openmp = check_openmp_support()
      File "C:\Users\Public\Documents\Wondershare\CreatorTemp\pip-install-8ooeas1k\scikit-learn\sklearn\_build_utils\openmp_helpers.py", line 83, in check_openmp_support
        ccompiler.compile(['test_openmp.c'], output_dir='objects',
      File "c:\users\admin\appdata\local\programs\python\python38-32\lib\distutils\_msvccompiler.py", line 360, in compile
        self.initialize()
      File "c:\users\admin\appdata\local\programs\python\python38-32\lib\distutils\_msvccompiler.py", line 253, in initialize
        vc_env = _get_vc_env(plat_spec)
      File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\setuptools\msvc.py", line 171, in msvc14_get_vc_env
        return EnvironmentInfo(plat_spec, vc_min_ver=14.0).return_env()
      File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\setuptools\msvc.py", line 1075, in __init__
        self.si = SystemInfo(self.ri, vc_ver)
      File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\setuptools\msvc.py", line 547, in __init__
        vc_ver or self._find_latest_available_vs_ver())
      File "c:\users\admin\appdata\local\programs\python\python38-32\lib\site-packages\setuptools\msvc.py", line 561, in _find_latest_available_vs_ver
        raise distutils.errors.DistutilsPlatformError(
    distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\admin\appdata\local\programs\python\python38-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-8ooeas1k\\scikit-learn\\setup.py'"'"'; __file__='"'"'C:\\Users\\Public\\Documents\\Wondershare\\CreatorTemp\\pip-install-8ooeas1k\\scikit-learn\\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\Public\Documents\Wondershare\CreatorTemp\pip-record-x04bx8yu\install-record.txt' --single-version-externally-managed --compile Check the logs for full command output.

我该怎么办?

标签: pythonmachine-learningscikit-learnpip

解决方案


你的错误说:

Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/

它告诉你的是你需要Microsoft Visual C++ 14.0在你的机器上安装才能安装你的模块。它是为 windows 平台编译 c/cpp 源代码的标准工具链。如果您尝试从源代码安装 python 模块,该模块的某些部分用 c/cpp 编写以提高速度,则需要这样做。

从源代码安装复杂模块可能会很痛苦,尤其是在 Windows 上,但幸运的是,您有选项:


通常许多知名的软件包都提供whl文件,这些文件是模块的预编译版本,无需在您的计算机上编译任何东西即可轻松安装。在您的情况下,您可以从输出中看到,它mlrose实际上是作为whl文件下载的

Using cached https://files.pythonhosted.org/packages/0d/f8/79e77a40f6e8988e3ecc9ead8a28024ee43df9c99fce2209037c9e6f9e4a/mlrose-1.3.0-py3-none-any.whl

但是scikit-learn(这是一个依赖项)作为源代码下载,而不是whl文件:

Using cached https://files.pythonhosted.org/packages/1e/ce/9d8c88e68af0a5b5c5d78d8d2b7bcadfd45e1d6afc863ccb9aee30765b06/scikit-learn-0.21.3.tar.gz

在编译过程中,会弹出错误提示您没有安装必要的编译器。如果您检查pypi 页面,您可以看到对于您的 python 版本(python 3.8),没有可用的 whl 文件,它们只能达到cp37(=python 3.7)。

Python 3.8 相当新,因此并不总是有官方预构建的 whl 文件可用。现在您可以:

  1. 卸载 python 3.8 并安装 python 3.7,这样在 pypi 上获得官方 whl 文件的机会更高
  2. 使用非官方来源的 whl 文件,即这个
  3. 使用预先安装了许多软件包的anaconda卸载 python 3.8 并安装 python 3.7
  4. 安装 Microsoft Visual Build Tools 并尝试自己编译相关库

我的建议是使用#3,如果您只想让安装尽快运行并且尽可能无忧,并且不在乎您是否拥有 python 3.7 或 python 3.8


推荐阅读