ImportError: cannot import name ‘__check_build‘ from partially initialized module ‘sklearn‘

 同事的本子上用pip install scikit-learn 安装时报错说: 

sklearn\\datasets\\tests\\data\\openml\\1119\\api-v1-json-data-list-data_name-adult-census-limit-2-data_version-1.json.gz'

再执行一次pip install scikit-learn居然不报错了说安装成功了!但是使用到sklearn时报错:

 C:\Users>python signal_noise_rate.py [C:\Users\Administrator\Desktop\191-200]
Traceback (most recent call last):
  File "signal_noise_rate.py", line 7, in <module>
    import librosa
  File "C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\librosa\__init__.py", line 14, in <module>
    from . import decompose
  File "C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\librosa\decompose.py", line 19, in <module>
    import sklearn.decomposition
  File "C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\sklearn\__init__.py", line 79, in <module>
    from . import __check_build  # noqa: F401
ImportError: cannot import name '__check_build' from partially initialized module 'sklearn' (most likely due to a circular import) (C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\sklearn\__init__.py)  

以前我自己没到过这个奇怪的问题,搜了国内网上一些解决办法无非是卸载scikit-learn然后重装,甚至是重装scipy,试过了都没用。

网上找了一下sklearn有关网站,从https://zenodo.org/record/3596890这里发现以前的版本,比如0.20.1、0.22.1,确实内部包含有api-v1-json-data-list-data_name-adult-census-limit-2-data_version-1.json.gz这个文件,高版本就没有了,于是先把高版本的numpy之类的相关的包先卸载掉,再用

  pip install scikit-learn==0.20.1

安装一下,结果使用sklearn时还是报上面的错误,郁闷了,这肯定是版本对不上的问题,但是到底是哪里版本对不上呢?想想可能是python本身有问题?不确定,再去墙外搜,果然搜到了一篇文章说是安装了32位的python有这个问题,于是卸载掉现有python安装64位的python,问题解决,猜测可能的原因是python在高版本中没有顾及32位版本的兼容性吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章