ModuleNotFoundError: 'sklearn' in Jupyter notebook

ModuleNotFoundError: 'sklearn' in Jupyter notebook

在 Python 3.7 和 Win10 上使用 Conda (4.8)。我使用 conda conda install scikit-learn 安装了 scikit learn。尝试了一些东西:还将它安装在 env conda install -n my_env scikit-learn 中。还尝试安装 conda install -c anaconda ipython - 没有任何效果。

我可以列出来:

scikit-learn              0.22             py37h6288b17_0  

但是在juypter notebook中报错 from sklearn.datasets import fetch_lfw_pairs(也尝试了几个其他命令) ModuleNotFoundError: 没有名为 'sklearn'

的模块

但是如果我使用 Anaconda UI Navigator 启动笔记本一切正常

更新
我尝试过此命令行选项对我不起作用,尽管社区付出了很多努力并提供了帮助和支持(如下所示)。同时,Jupyter Notebook 也可以从 Anaconda UI 本身启动。这一直对我有用——不需要配置或设置 (none)。我还没有发现任何限制等(你确实得到了完全相同的笔记本)。对于 advanced/unique 您可能需要微调配置 cmd 行的用例可能会有所帮助,我不在那里。

很可能,您在启动笔记本时加载了错误的内核。 这是设置环境的准系统方法:

conda create -n testenv python=3.7 -y

conda activate testenv

conda install scikit-learn
conda install ipython
conda install notebook

python -m ipykernel install --user --name testenv

当您在浏览器中单击 new 时,您会在 python3 旁边看到一个附加选项,即您刚刚注册的内核。我刚刚用 anaconda 4.7 测试了这个,我可以导入 sklearn。

编辑:

答案中的代码创建了一个新的 python 环境。然后,它会在该环境中安装 ipython 和 jupyter notebook,并确保该环境可以与 jupyter notebook 一起使用(即注册 ipykernel)。

现在当然除了 scikit learn 之外,没有在特定环境中安装其他库。

所以,如果你想使用更多的库,你必须进入命令行,激活环境,并安装你要使用的库:

conda activate testenv
conda install scipy numpy matplotlib

然后 运行 环境中的 jupyter notebook,在你安装了所有你想要的东西之后(并且在关闭命令提示符或停用环境之后),你可以做

conda activate testenv
jupyter notebook

在命令提示符中。

Jupyterlab 通常会使用您启动它的环境。例如:

  1. 如果您先激活 my_env,然后从终端执行 jupyter lab,它应该会检测到环境。
  2. 万一失败,请转至 Kernel -> Change Kernel 和 select 您要使用的内核。

注意: 在创建新内核时,我总是使用 display-name 参数,这很有帮助。你可以这样做:

python -m ipykernel install --user --name my_env --display-name "Python (my_env)"

希望对您有所帮助。

要解决此问题,您需要在 Anaconda 中手动安装此软件包。

如何安装?打开 Anaconda Prompt 和 运行 以下命令:

conda install -c conda-forge scikit-learn

然后重启 Jupyter Notebook 并导入这个包。

我觉得是环境没有激活的问题。先尝试 conda activate my_env,然后输入 jupyter notebook

您可以做的第一件事是:

import sys
print(sys.path)

检查路径中是否存在/path/to/anaconda/envs/my_env/lib/python3.7/site-packages

我发现打印当前 sys.path 很有用,这样我就知道它在看什么。

conda info --envs

当 testEnv 存在时:

conda activate testEnv

conda list scikit-learn