在 pyenv 中找到 python/sklearn 的正确版本以使用机器学习模型

Finding right version of python/sklearn in to use machine learning model in pyenv

我在 Kaggle 上腌制了一个模型,并尝试将其下载到 运行 本地。使用 poetry 和 pyenv 我 运行 下面的命令来创建一个项目:

pyenv local 3.6.6    
poetry new model_api
cd model_test
poetry env use python
poetry add "sklearn>=0.21.3"

但收到以下错误。

如果我只是使用 sklearn 并用 poetry 安装它,我在 VS Code 中执行我的代码时会收到此错误。

/bin/python /home/gary/Documents/model_api/model_api/app.py
Traceback (most recent call last):
  File "/home/gary/Documents/model_api/model_api/app.py", line 5, in <module>
    model = pickle.load(f)
ModuleNotFoundError: No module named 'sklearn.ensemble.forest'

这是我正在尝试的代码 运行。

import sklearn 
import pickle

f = open('./model/ForestModel','rb')
model = pickle.load(f)

我正在尝试根据我在 Kaggle 上看到的内容使用 Python 3.6.6 和 sklearn 0.21.3:

如果我尝试使用更新版本的 Python,例如 3.8.10,我会遇到同样的错误。我想我遗漏了什么 simple/obvious。任何我可以检查的指示或事情将不胜感激。

我会尝试使用 Anaconda 包管理器而不是 pyenv。您可以使用以下代码创建环境:

  • conda create -n envName sklearn

他们可能会跟上 Python 包的最佳协调,这样您就不会出错。

没有您要安装的版本的软件包sklearn。我认为您正在寻找 scikit-learn 而不是 (Docs).

您可以通过 运行 安装其他依赖项支持的最新版本:

poetry add scikit-learn

或者如果您需要安装特定版本:

poetry add "scikit-learn==0.24.2"

有关其他选项,请查看诗歌文档 here