【问题标题】:I am unable to install mlrose package我无法安装 mlrose 包
【发布时间】:2023-03-18 22:45:01
【问题描述】:

每当我 pip install mlrose 时,它​​都会向我显示以下错误。我是机器学习的新手,希望能提供详细的解释。

Microsoft Windows [版本 10.0.17134.1069] (c) 2018 年微软公司。保留所有权利。

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.

我该怎么办?

【问题讨论】:

  • 您是否尝试过安装可视化构建工具?根据您的错误:“需要 Microsoft Visual C++ 14.0。使用“Visual Studio 构建工具”获取它:visualstudio.microsoft.com/downloads"

标签: python machine-learning scikit-learn pip


【解决方案1】:

你的错误说:

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 page,您会看到对于您的python 版本(python 3.8),没有可用的whl 文件,它们只能达到cp37(=python 3.7)。

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

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

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

【讨论】:

    猜你喜欢
    • 2014-11-16
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 2014-12-22
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多