Python 3.7 - 安装 Scikit-Learn 的问题

Posted

技术标签:

【中文标题】Python 3.7 - 安装 Scikit-Learn 的问题【英文标题】:Python 3.7 - Issues Installing Scikit-Learn 【发布时间】:2019-02-03 12:12:24 【问题描述】:

我目前在尝试在 Linux - RHEL / Centos 7 OS 上为 Python 3.7 或 2.7 安装任何版本的 Scikit Learn(0.19.0 或 0.19.1 或 0.19.2)时遇到以下问题。

几个月前,我可以在 python 2.7 下成功安装 scikit-learn,而不会出现问题。当我在 python 2.7 下重新运行 scikit-learn 包的安装时,它失败并出现以下相同的错误。

在安装 scikit-learn 之前,我已经安装了所有必需的操作系统和 Python 包依赖项

我已经安装了所有先决条件 - 操作系统包 - blas-devel 、 lapack-devel 、 atlas-devel。

Python 版本 - 3.7

/usr/local/bsb-python37 - 我配置和安装 Python 3.7 的自定义位置

我遵循的安装 Python 和 Python 包的步骤。

使用以下步骤安装 Python - 对 Python 2.7 和 3.7 遵循相同的过程

Install Python 2.7
bash "build-and-install-python2.7" do
cwd '/tmp/python'
code <<-EOH
tar -xvf Python-2.7.14.tgz --no-same-owner / tar -xvf Python-3.7.0.tgz --no-same-owner
sleep 10
cd Python-2.7.14 / cd Python-3.7.0
./configure --prefix=/usr/local/bsb-python27 (and bsb-python37)
make && make altinstall
EOH
not_if  ::File.exist?('/usr/local/bsb-python27/bin/python2.7') 
end

包安装步骤

Install scikitlearn
bash "scikitlearn-install" do
cwd '/tmp/python'
code <<-EOH
tar xzvf scikit-learn-0.19.0.tar.gz or scikit-learn-0.19.1.tar.gz or scikit-learn-0.19.2.tar.gz
sleep 10
cd scikit-learn-0.19.1 or cd scikit-learn-0.19.1 or scikit-learn-0.19.2
/usr/local/bsb-python27/bin/python2.7 setup.py install --prefix=/usr/local/bsb-python27
EOH
not_if " /usr/local/bsb-python27/bin/python2.7 -c 'import sklearn;' "
end

几个月前,当我在 Python 2.7 下安装 scikit-learn 时,我没有遇到任何问题。现在,当我重新尝试在 Python 2.7 下安装 scikit learn 时,我遇到了同样的问题,并且之前成功安装的 scikit learn 版本已损坏。

错误信息:

/usr/local/bsb-python37/bin/python3.7 setup.py install --prefix=/usr/local/bsb-python37 在构建过程中部分导入 sklearn。 blas_opt_info: blas_mkl_info: 自定义 UnixCCompiler 在 ['/usr/local/bsb-python37/lib', '/usr/local/lib64', '/usr/local/lib', '/usr/lib64', '/usr/lib' 中找不到库 mkl_rt , '/usr/lib/'] 不可用

幸福信息: 自定义 UnixCCompiler 在 ['/usr/local/bsb-python37/lib', '/usr/local/lib64', '/usr/local/lib', '/usr/lib64', '/usr/lib' , '/usr/lib/'] 不可用

错误:命令“g++ -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/bsb-python37/lib/python3.7/site -packages/numpy-1.14.5-py3.7-linux-x86_64.egg/numpy/core/include -I/usr/local/bsb-python37/lib/python3.7/site-packages/numpy-1.14.5 -py3.7-linux-x86_64.egg/numpy/core/include -I/usr/local/bsb-python37/include/python3.7m -c sklearn/cluster/_dbscan_inner.cpp -o build/temp.linux-x86_64 -3.7/sklearn/cluster/_dbscan_inner.o -MMD -MF build/temp.linux-x86_64-3.7/sklearn/cluster/_dbscan_inner.od”失败,退出状态为 1

非常感谢任何帮助。我试着用谷歌搜索,尽我所能。没有运气。

【问题讨论】:

您有什么理由不使用 pypi (pip) 或 anaconda 吗?这个问题与编程无关,因此更适合Super User scikit-learn 尚未更新为与 python 3.7 一起使用。所以即使你解决了上面的错误,在使用过程中也会出现一些警告和错误。 @vivek kumar - 感谢您对我发布的问题的快速回复。您知道 Python 3.7 将支持哪个版本的 scikit-learn 吗?几个月前,当我安装 python 2.7 并安装 scikit-learn 时,它运行良好,没有任何错误。我尝试在 python 2.7 下再次安装 scikit-learn,但在尝试在 python 3.7 下安装 scikit-learn 时遇到了相同的错误 目前 scikit-learn 在 python2.7 和 python3.6 上运行良好。只有 github 开发中的版本(master 分支)可能已更新为可与 python 3.7 一起使用。稳定版本不兼容(没有警告或错误) @vivek.kumar - 即使对于 Python 2.7,scikit-learn 现在也无法正常工作。早些时候,当我为 Python 2.7 安装 scikit-learn 时,它确实可以工作,但现在它失败了。我得到的错误消息与我粘贴的上面相同。非常感谢任何帮助或指导。 【参考方案1】:

我刚刚使用了pip install sklearn 作为替代方案。它对我有用。

【讨论】:

以上是关于Python 3.7 - 安装 Scikit-Learn 的问题的主要内容,如果未能解决你的问题,请参考以下文章

安装 3.7 时,Tensorflow 更新强制 Python3.5

构建 Docker 时出错:“包 'mongodb' 没有安装 csndidate”与 python:3.7 图像

安装Scrapy后,Python 3.7崩溃了

centos 7 安装Python 3.7

centos 7 安装Python 3.7

Anaconda 总是安装 Python 3.7