Py学习  »  Python

在python 3.7和3.5上安装旧版本scikit learn以实现支持向量机模型兼容性时出现问题

Patrick Nijman • 5 年前 • 1959 次点击  

我必须在旧版本的scikit learn中实现一个支持向量机分类器。我在scikit learn(0.20.3)上训练的模型似乎不适用于我的项目(0.15.2)所使用的版本,它返回:attributeerror:“svc”对象没有属性“_imp1”。为了解决这个问题,我想安装一个旧版本的scikit learn,以便在该版本上重新训练我的模型。尝试在Windows 10上安装旧版本的Python3.5和3.7的scikit learn时,我一直遇到以下错误:

c:\program files (x86)\python37-32\include\pystate.h(209): note:

参见“t”的声明 sklearn\cluster_dbscan_inner.cpp(5971):错误c239:“exc_type”:不是“ts”的成员 C:\程序文件(x86)\ python37-32\include\pystate.h(209):注意:请参见“ts”的声明 sklearn\cluster_dbscan_inner.cpp(5972):错误c239:“exc_value”:不是“ts”的成员 C:\程序文件(x86)\ python37-32\include\pystate.h(209):注意:请参见“ts”的声明 sklearn\cluster_dbscan_inner.cpp(5973):错误c239:“exc_traceback”:不是“ts”的成员 C:\程序文件(x86)\ python37-32\include\pystate.h(209):注意:请参见“ts”的声明

----------------------------------------

命令“”c:\程序文件(x86)\ python37-32\python.exe“-u-c”导入 设置工具 令牌化; 文件 ='C:\users\pat2\appdata\local\temp\pip-install-77bzkmyc\scikit learn\setup.py';f=getattr(标记化, “打开”,打开)( 文件 );代码=f.read().replace('\r\n', '\n');f.close();exec(编译(代码, 文件 ,'exec'))“安装 --记录C:\users\pat2\appdata\local\temp\pip-record-4hjlpz98\install-record.txt --单版本外部管理--编译--用户--前缀=“失败,错误代码为1 C:\users\pat2\appdata\local\temp\pip-install-77bzkmyc\scikit学习\

打印出来的日志很长,所以我不确定在这里复制哪一部分。也会打印以下错误,但不会停止安装过程:

错误:命令“C:\程序文件(x86)\ Microsoft Visual studio\2017\community\vc\tools\msvc\14.15.26726\bin\hostx86\x86\cl.exe /C/NOLOGO/OX/W3/GL/DNDEBUG/MD公司 -IC:\users\pat2\appdata\roaming\python\python3 7\site packages\numpy\core\include-isklearn\svm\src\libsvm -IC:\users\pat2\appdata\roaming\python\python37\site packages\numpy\core\include -I“C:\程序文件(x86)\ python37-32\include”-I“C:\程序文件(x86)\ python37-32\include”-I“C:\程序文件(x86)\ Microsoft Visual studio\2017\community\vc\tools\msvc\14.15.26726\include“-i”c:\程序 文件(x86\windows kits\10\include\10.0.16299.0\ucrt“-i”c:\程序 文件(x 86)\ Windows工具包\10\include\10.0.16299.0\shared“ -i“c:\程序文件(x86)\ Windows工具包\10\include\10.0.16299.0\um”-i“c:\程序文件(x86)\ Windows工具包\10\include\10.0.16299.0\winrt”-i“c:\程序文件(x86)\ w Windows工具包\10\include\10.0.16299.0\cppwinrt“/tcsklearn\svm\libsvm.c /fobuild\temp.win32-3.7\release\sklearn\svm\libsvm.obj“失败,原因是 退出状态2

以下消息也经常出现:

在numpy.distutils中没有名为“numpy.distutils.msvccompiler”的模块; 从distutils尝试

到目前为止,我已经尝试过这些事情:

  • 安装cython 0.27.3
  • 安装图集
  • 手动安装scikit learn 0.15.3至setup.py
  • 直接从github检索scikit learn 0.15.3
  • 重新安装微软VisualStudioC++
  • 在我的另一台电脑上试过,结果也是一样

但是这些操作都没有改变安装scikit learn 0.15.3的结果。

编辑:

  1. 我在尝试安装scikit learn 0.19.0时遇到了同样的问题

  2. 在第一个错误日志中添加了更多信息

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40886
 
1959 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Rubens_Zimbres
Reply   •   1 楼
Rubens_Zimbres    6 年前

尝试:

pip install setuptools --upgrade
pip install numpy --upgrade