【问题标题】:ModuleNotFoundError: 'sklearn' in Jupyter notebookModuleNotFoundError:Jupyter 笔记本中的“sklearn”
【发布时间】:2020-04-19 15:14:24
【问题描述】:

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

我可以列出来:

scikit-learn              0.22             py37h6288b17_0  

但在 juypter 笔记本中出现错误 from sklearn.datasets import fetch_lfw_pairs(也尝试了其他几个命令) ModuleNotFoundError: 没有名为“sklearn”的模块

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

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

【问题讨论】:

  • does this help?具体来说:python -m ipykernel install --user --name myenv
  • @warped 这有点到处都是 - 无法弄清楚到底要做什么。我是否使用 conda ` source activate myenv conda install pip conda install ipykernel` 重新安装 pip `
  • 试过No module named ipykernel。所以我安装了 ipykernel conda install ipykernel - 仍然没有运气

标签: python scikit-learn jupyter-notebook anaconda virtualenv


【解决方案1】:

可能,当您启动笔记本时,您正在加载错误的内核。 以下是设置环境的鞍条方式:

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。

编辑: h3>

答案中的代码创建了一个新的Python环境。然后,它在该环境中安装IPython和Jupyter Notebook,并确保此环境可以与Jupyter Notebook(即注册iPykernel)一起使用。

现在当然除了Scikit学习外,没有在该特定环境中安装其他图书馆。

所以,如果要使用更多库,则必须转到命令行,激活环境,并安装要使用的库:

conda activate testenv
conda install scipy numpy matplotlib

然后从环境中运行jupyter笔记本,在安装所有您想要的所有内容(以及关闭命令提示符后或已停用环境之后),您可以执行

conda activate testenv
jupyter notebook

在命令提示符中。

【讨论】:

  • 我用pip安装了我的jupyter笔记本pip install jupyterlab。我只有一个Python 3.7,所以我在没有Python标志的情况下创建了Myenv。如果这是解决问题, span>的情况,我可以在上面做到
  • 执行这些系列步骤 - 基本上用这些步骤重新安装工作。可能使用conda install notebook而不是pip可能是技巧。 spp>
  • 毕竟 - 一切都崩溃 - 不再工作了。我的env中没有什么改变,我在激活并使用相同的“testenv” - 但它不再有效。现在,当我创建一个新的笔记本 - 我选择选择env - 我选择“testenv”。但是唉, span>
  • 尝试过python 3也不起作用,无法在987654327 @模块本身。 span>
  • 所以您建议我必须在每个环境中安装所有库。这是如何工作的。所以在未来我需要更多的图书馆 - 我必须安装。有点没有意识到这应该不是那么困难 - 我有所有的图书馆安装 - 我不在env。最初我有这个库问题(在Sklearn之前) - 然后我刚刚创建了 环境 - 问题消失了(我没有在env中安装任何lib)。但Sklearn问题在下一步中浮出水面。我们解决了Sklearn问题,但旧问题重新替换。一步一步回来。 span>
【解决方案2】:

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

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

注意:在创建新内核时,我总是使用有帮助的display-name 参数。您可以执行以下操作:

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

希望这会有所帮助。

【讨论】:

  • 试过这个不起作用-同样的错误conda create -n testenv python=3.7 -yconda activate testenvconda install ipykernelpython -m ipykernel install --user --name testenv --display-name "Python (testenv)"jupyter notebook
  • 又增加了 1 步 conda install scikit-learn - 没有帮助
  • 再走一步,成功了 conda install notebook
【解决方案3】:

要解决这个问题,你需要在Anaconda中手动安装这个包。

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

conda install -c conda-forge scikit-learn

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

【讨论】:

    【解决方案4】:

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

    你可以做的第一件事是:

    import sys
    print(sys.path)
    

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

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

    【讨论】:

    • 我在我的活动环境中,试过这个我有 C:\\Users\\sbaha\\AppData\\Roaming\\Python\\Python37\\site-packages', 'c:\ \apps\\python\\lib\\site-packages','c:\\apps\\python\\lib\\site-packages\\win32','c:\\apps\\python\\lib\ \site-packages\\win32\\lib', 'c:\\apps\\python\\lib\\site-packages\\Pythonwin', 'c:\\apps\\python\\lib\\site- packages\\IPython\\extensions', 'C:\\Users\\sbaha\\.ipython'
    • @Sam-T 这很奇怪,似乎 anaconda 环境不在您的path 中。可以在cmd中输入where jupyter命令查看使用的是哪个jupyter文件。然后打开那个文件(只是一个文本文件),检查第一行,你可以看到使用的python解释器。
    • anaconda 在 PATH 中 - 我没有在上面粘贴所有内容。 where jupyterC:\apps\Python\Scripts\jupyter.exe。这是一个exe文件 - 无法打开它
    • 我认为你开始错误jupyter。它应该是/path/to/anaconda/envs/my_env/Scripts 或类似的东西。关键是,您的jupyter 不是anaconda 安装的jupyter。你可以去anaconda路径找到正确的jupyter。不过,我认为您的 anaconda 没有正确激活。
    • 我已经以多种方式安装了笔记本——pip 和 conda——所以不知道在哪里。我该如何解决。我的 anaconda UI 运行良好。但是命令行是所有问题的所在——我什至应该使用命令行吗?
    【解决方案5】:
    conda info --envs
    

    当 testEnv 存在时:

    conda activate testEnv
    
    conda list scikit-learn
    

    【讨论】:

    • 额外信息:我在使用命令行时发生了类型错误并意外创建了一个新环境。所以检查“conda info --envs”会有所帮助
    • 另外:scikit-learn 是最新 anaconda 版本的默认(基础)。因此,您可以先尝试从那里启动一个笔记本:=> jupyter notebook
    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2021-03-24
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2020-09-22
    • 1970-01-01
    相关资源
    最近更新 更多