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位版本的兼容性吧。

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