python - 我无法安装 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.
我该怎么办?
解决方案
你的错误说:
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 文件可用。现在您可以:
- 卸载 python 3.8 并安装 python 3.7,这样在 pypi 上获得官方 whl 文件的机会更高
- 使用非官方来源的 whl 文件,即这个
- 使用预先安装了许多软件包的anaconda卸载 python 3.8 并安装 python 3.7
- 安装 Microsoft Visual Build Tools 并尝试自己编译相关库
我的建议是使用#3,如果您只想让安装尽快运行并且尽可能无忧,并且不在乎您是否拥有 python 3.7 或 python 3.8
推荐阅读
- php - Laravel 5.5 存储链调用添加dir文件过滤类
- python-3.x - 抑制嵌套异常
- html - DIV 超出父 DIV
- node.js - 如果在 passport.authenticate(...) 上删除 (req, res, next),网页会无限期加载
- django - Django 选择与存储在数据库中
- apache-spark - 如何更改 _spark_metadata 目录的位置?
- vue.js - Nuxt Vuex 商店 Cookie 问题
- r - 如何创建按顺序使用数据框中数据的分段图?
- typescript - TSLint 无法识别正确的按位运算符
- python - Python 数组 rows*1column numpy for numpy.dot(matrix,matrix2)