我使用“pip install scikit-learn”安装sklearn。在安装过程中,我收到一条错误消息:
错误:由于 EnvironmentError 而无法安装软件包:[Errno 2] 没有这样的文件或目录:'C:\Users\ajgu2000\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\sklearn\datasets\tests\data\openml\292\api-v1-json-数据-列表-数据名称-澳大利亚-限制-2-数据版本-1-状态-已停用.json.gz‘
这似乎是一个数据集文件,所以我不明白为什么它会导致严重的安装错误。
奇怪的是,当我执行“pip list”时,我可以看到“scikit-learn 0.21.3”已安装。但是,当我在代码中导入模块时,它引发了一个错误,提示缺少“check_build”文件。
回溯(最近一次调用最后一次):文件“c:/Users/ajgu2000/Documents/GitHub/DeepLearningPython35/mnist_svm.py”,第 13 行,来自 sklearn 导入 svm 文件“C:\Users\ajgu2000\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\sklearn__init__.py”,第 75 行,来自。导入check_build ImportError:无法从“sklearn”导入名称“__check_build”(C:\Users\ajgu2000\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\sklearn__init.py)
我注释掉了该代码(按照此建议,假设这只是一个错误:https://stackoverflow.com/questions/15274696/importerror-in-importing-from-sklearn-cannot-import-name-check-build),但随后我收到另一个有关缺少“sklearn.utils”的错误。
回溯(最近一次调用最后一次):文件“c:/Users/ajgu2000/Documents/GitHub/DeepLearningPython35/mnist_svm.py”,第 13 行,来自 sklearn 导入 svm 文件“C:\ Users \ ajgu2000 \ AppData \ Local \ Packages \ PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0 \ LocalCache \ local-packages \ Python37 \ site-packages \ sklearn__init__.py”,第 76 行,来自.base 导入克隆文件“C:\ Users \ ajgu2000 \ AppData \ Local \ Packages \ PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0 \ LocalCache \ local-packages \ Python37 \ site-packages \ sklearn \ base.py”,第 16 行,来自.utils 导入 _IS_32BIT ModuleNotFoundError:没有名为的模块‘sklearn.utils’
答案1
如果 Python 安装在嵌套位置(例如用户主目录下的 AppData 文件夹结构),则在达到 Windows 的默认路径大小限制时,pip 可能无法安装软件包,例如:
可以使用 regedit 工具来解除 Windows 注册表中的该限制:
在 Windows 开始菜单中输入“regedit”以启动 regedit。
去找到Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
钥匙。
编辑该键的属性值LongPathsEnabled
并将其设置为 1。
重新安装 scikit-learn(忽略之前损坏的安装):
pip install --exists-action=i scikit-learn