在virtualenv中运行Jupyter笔记本:已安装的sklearn模块不可用

2024-06-28 19:14:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经安装了一个created a virtualenvmachinelearn并在该环境中安装了一些python模块(pandas、scipy和sklearn)。

当我运行jupyter笔记本时,我可以在笔记本中导入pandas和scipy—但是,当我尝试导入sklearn时,会收到以下错误消息:

import sklearn

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-8fd979e02004> in <module>()
----> 1 import sklearn

ImportError: No module named 'sklearn'

我可以在命令行导入所有模块,因此我知道它们已成功安装:

(machinelearn) me@yourbox:~/path/to/machinelearn$ python -c "import pandas, scipy, sklearn"
(machinelearn) me@yourbox:~/path/to/machinelearn$ 

如何在运行virtualenv的jupyter笔记本中导入sklearn?


Tags: 模块topathimportpandas笔记本jupyterscipy
3条回答

另一种方法是安装一个全局jupyter,但要指向作为后端运行的不同内核。

他们的文件中概述了这种方法: http://help.pythonanywhere.com/pages/IPythonNotebookVirtualenvs

如果链接断开,请复制以下内容: 你可以在你的IPython笔记本上使用virtualenv。遵循以下步骤:

将ipython内核模块安装到virtualenv中

workon my-virtualenv-name  # activate your virtualenv, if you haven't already
pip install ipykernel

现在运行内核“self install”脚本:

python -m ipykernel install --user --name=my-virtualenv-name

根据需要替换--name参数。

现在,您应该可以在IPython笔记本菜单中看到您的内核:kernel->;更改内核并切换到它(您可能需要在页面出现在列表中之前刷新页面)。从那时起,IPython将记住该笔记本使用哪个内核。

要将Jupyter笔记本与安装在该环境中的虚拟环境(使用virtualenvwrapper)和软件包一起使用,请执行以下步骤:

  1. 创建虚拟环境

    mkvirtualenv --no-site-packages --python=/your/python/path your_env_name
    
  2. 激活虚拟环境

    workon your_env_name
    
  3. 安装Jupyter和其他软件包

    pip install jupyter, numpy
    
  4. 将新内核添加到Jupyter配置中

    ipython kernel install --user --name=your_env_name
    
  5. 完成。现在可以在虚拟环境下使用Jupyter笔记本。

    jupyter-notebook
    

免责声明:问题已被回答,但隐藏在其中一个答复中。我搜索了一下,花了些时间找到了正确的答案。所以我只是总结一下,这样有同样问题的人就可以很容易地理解了。

您可能还没有在virtualenv中安装jupyter/IPython。请尝试以下操作:

python -c "import IPython"

并检查在您的$PATH中找到的jupyter命令是否来自您的venv的bin文件夹:

which jupyter

对于powershell控制台中的windows用户,可以使用以下命令检查$env:Path中的jupyter命令是否来自venv的Scripts文件夹:

get-command jupyter

编辑:如果这是问题所在,只需在venv中运行python -m pip install jupyter

编辑2:实际上,您可能还需要:

python -m ipykernel install --user --name=my-virtualenv-name

然后在jupyter用户界面中切换名为“my virtualenv name”的内核。

相关问题 更多 >