Windows安装fancyimpute遇到的问题及解决方案

Anaconda Cloud中没有提供fancyimpute在windows环境下的库,所以我们需要使用pip来安装fancyimpute。网上大多数安装方式如下:

1
2
3
conda install ecos
conda install CVXcanon
pip install fancyimpute

在安装ecos和CVXcanon的过程中你可以会遇到在这篇帖子中遇到的错误,至少我是遇到了:

ERROR: Failed building wheel for scs Running setup.py clean for scs Failed to build cvxpy scs

ERROR: Could not build wheels for cvxpy which use PEP 517 and cannot be installed directly

error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: https://visualstudio.microsoft.com/downloads/

这篇帖子有一个答案给出了解决方案,我当时照着操作就是去下载了scs and cvxpy wheels,然后通过pip安装了这两个whl文件:

1
2
3
4
conda install ecos
conda install (scs filename).whl
conda install (cvxpy filename).whl
pip install fancyimpute

然后也成功的安装好了fancyimpute,但是当我在Spyder下import fancyimpute的时候出现了ModuleNotFoundError和import error:


ModuleNotFoundError: No module named ‘cvxpy.cvxcore.python._cvxcore’

ImportError: DLL load failed: The specified module could not be found.

然后去解决ModuleNotFoundError,尝试了很多办法都没能解决问题,但是可以确定的是一定是cvxpy这个库出了问题,导致fancyimpute不能import,所以卸载了cvxpy这个库:

1
2
pip uninstall cvxpy
pip install cvxpy

接着又出现了:

ERROR: Failed building wheel for scs Running setup.py clean for scs Failed to build cvxpy scs

ERROR: Could not build wheels for cvxpy which use PEP 517 and cannot be installed directly

error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: https://visualstudio.microsoft.com/downloads/

这次仔细读了错误内容,然后又去了cvxpy的官方站点。终于发现了问题所在,其实在一开始提到的那篇StackOverflow的帖子里的解决方案中的第一部也提到了这点,就是安装 Visual Studio build tools for Python 3,然后我再最开始忽略了这个步骤。下载好VS之后,然后重新安装cvxpy之后就不会报错了。安装完cvxpy之后,fancyimpute就可以完美的使用了。

0%