bash
(race-predicted) syh@syh-HKF-WXX:~/PycharmProjects/race-predicted$ pip install -r requirements.txt
Collecting numpy==1.16.4 (from -r requirements.txt (line 1))
Using cached numpy-1.16.4.zip (5.1 MB)
Preparing metadata (setup.py) ... done
Collecting sklearn (from -r requirements.txt (line 2))
Using cached sklearn-0.0.post12.tar.gz (2.6 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [15 lines of output]
The 'sklearn' PyPI package is deprecated, use 'scikit-learn'
rather than 'sklearn' for pip commands.
Here is how to fix this error in the main use cases:
- use 'pip install scikit-learn' rather than 'pip install sklearn'
- replace 'sklearn' by 'scikit-learn' in your pip requirements files
(requirements.txt, setup.py, setup.cfg, Pipfile, etc ...)
- if the 'sklearn' package is used by one of your dependencies,
it would be great if you take some time to track which package uses
'sklearn' instead of 'scikit-learn' and report it to their issue tracker
- as a last resort, set the environment variable
SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True to avoid this error
More information is available at
https://github.com/scikit-learn/sklearn-pypi-package
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
您遇到的错误是由于在 requirements.txt
文件中指定了已弃用的 sklearn
包。sklearn
包已经不再维护,建议使用 scikit-learn
代替。以下是详细的解释和解决方法:
错误原因
- 弃用的包 :
sklearn
包已被弃用,官方推荐使用scikit-learn
。 - 安装失败 : 当
pip
尝试安装sklearn
时,由于包不再维护,导致setup.py
无法成功运行,从而引发错误。
解决方法
-
更新
requirements.txt
文件:- 打开您的
requirements.txt
文件。 - 将所有的
sklearn
条目替换为scikit-learn
。
示例:
diff- sklearn + scikit-learn
- 打开您的
-
重新运行安装命令 :
在终端中运行以下命令以安装更新后的依赖包:
bashpip install -r requirements.txt
-
验证安装 :
确认
scikit-learn
已成功安装,可以在 Python 环境中运行以下命令:pythonimport sklearn print(sklearn.__version__)
如果没有错误,并且显示了版本号,说明安装成功。
其他建议
-
检查依赖包的兼容性 : 您的
requirements.txt
中numpy
的版本是1.16.4
,这是一个相对较旧的版本。确保scikit-learn
版本与numpy
版本兼容。如果可能,考虑升级numpy
以获得更好的性能和新功能。示例:
diff- numpy==1.16.4 + numpy>=1.21.0
-
更新
scikit-learn
: 如果您的项目允许,使用最新版本的scikit-learn
以获得最新的功能和修复。 -
处理依赖包中的
sklearn
: 如果sklearn
被其他依赖包引用,您可能需要检查这些包是否有更新版本,或者联系维护者以解决依赖问题。
总结
主要问题是 requirements.txt
中使用了已弃用的 sklearn
包。通过将其替换为 scikit-learn
,您应该能够解决安装过程中遇到的错误。如果在替换后仍然遇到问题,请确保所有依赖包都是最新的,并且彼此兼容。
如果有任何进一步的问题,请随时提问!