在python 3.7和3.5上安装较旧版本的scikit-learn时出现问题,以实现SVM模型兼容性

时间:2019-03-12 10:46:29

标签: python scikit-learn python-3.5 python-3.7

我必须在旧版本的scikit-learn中实现svm分类器。我在scikit-learn(0.20.3)上训练的模型似乎不适用于我的项目(0.15.2)所使用的版本,它返回:AttributeError:'SVC'对象没有属性'_imp1'。为了解决此问题,我想安装scikit-learn的旧版本,以便在该版本上重新训练我的模型。尝试在Windows 10上同时为python 3.5和3.7安装较旧版本的scikit-learn时,出现以下错误:

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

请参阅“ _ts”的声明       sklearn \ cluster_dbscan_inner.cpp(5971):错误C2039:'exc_type':不是'_ts'的成员       c:\ program files(x86)\ python37-32 \ include \ pystate.h(209):注意:请参见“ _ts”的声明       sklearn \ cluster_dbscan_inner.cpp(5972):错误C2039:'exc_value':不是'_ts'的成员       c:\ program files(x86)\ python37-32 \ include \ pystate.h(209):注意:请参见“ _ts”的声明       sklearn \ cluster_dbscan_inner.cpp(5973):错误C2039:'exc_traceback':不是'_ts'的成员       c:\ program files(x86)\ python37-32 \ include \ pystate.h(209):注意:请参见“ _ts”的声明

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

命令““ c:\ program files(x86)\ python37-32 \ python.exe” -u -c“ import   设置工具   标记化; 文件 ='C:\ Users \ Pat2 \ AppData \ Local \ Temp \ pip-install-77bzkmyc \ scikit-learn \ setup.py'; f = getattr(标记化,   'open',open)(文件); code = f.read()。replace('\ r \ n',   '\ n'); f.close(); exec(compile(code, file ,'exec')))“安装   --record C:\ Users \ Pat2 \ AppData \ Local \ Temp \ pip-record-4hjlpz98 \ install-record.txt   --single-version-exte一般管理的--compile --user --prefix =“失败,错误代码为1   C:\ Users \ Pat2 \ AppData \ Local \ Temp \ pip-install-77bzkmyc \ scikit-learn \

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

  

错误:命令“ C:\ Program Files(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:\ program files(x86)\ python37-32 \ include” -I“ c:\ program files(x86)\ python37-32 \ include” -I“ C:\ Program Files(x86)\ Microsoft Visual   Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.15.26726 \ include“ -I” C:\ Program   文件(x86)\ Windows Kits \ 10 \ include \ 10.0.16299.0 \ ucrt“ -I” C:\ Program   文件(x 86)\ Windows Kits \ 10 \ include \ 10.0.16299.0 \ shared“   -I“ C:\ Program Files(x86)\ Windows Kits \ 10 \ include \ 10.0.16299.0 \ um” -I“ C:\ Program Files(x86)\ Windows Kits \ 10 \ include \ 10.0.16299.0 \ winrt” -I“ C:\ Program Files(x86)\ W indows Kits \ 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
  • 已安装图集
  • 通过setup.py手动安装scikit-learn 0.15.3
  • 直接从Github检索scikit-learn 0.15.3
  • 重新安装Microsoft Visual Studio C ++
  • 在我的另一台计算机上进行了尝试,导致了同样的问题

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

编辑:

  1. 尝试安装scikit-learn 0.19.0时遇到相同的问题

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

0 个答案:

没有答案