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

时间:2017-02-24 23:09:08

标签: python scikit-learn virtualenv jupyter-notebook

我已经安装了一个virtualenv machinelearn ,并在该环境中安装了一些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?

7 个答案:

答案 0 :(得分:20)

你可能还没有在virtualenv中安装jupyter / IPython。请尝试以下方法:

python -c "import IPython"

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

which jupyter

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

get-command jupyter

修改:如果出现问题,请在您的venv中运行python -m pip install jupyter

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

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

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

答案 1 :(得分:13)

另一种方法是安装一个全局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

现在运行内核&#34;自行安装&#34;脚本:

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

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

您现在应该能够在IPython笔记本菜单中看到您的内核:Kernel - &gt;更改内核并能够切换到它(您可能需要在页面出现之前刷新页面)。 IPython将记住从那时起用于该笔记本的内核。

答案 2 :(得分:3)

要将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
    
  6. 免责声明:问题已得到解答,但隐藏在其中一个回复中。我用谷歌搜索并花了一些时间找到正确的答案。所以我只是总结一下,以便有同样问题的人可以轻松跟进。

答案 3 :(得分:2)

假设您的计算机上安装了jupyter,而不是虚拟环境上。

在Jupyter Notebook中使用虚拟环境

VENV_NAME =“您的虚拟ENV名称”

1)virtualenv VENV_NAME

2)source venv/bin/activate

3)如果不存在,请添加此软件包:pip3 install ipykernel

4)然后执行以下命令:ipython kernel install --user --name=VENV_NAME

5)现在打开Jupyter Notebook,并在更改内核中选择VENV_NAME

6)要安装新软件包,请在终端中执行pip3 install <PACKAGE NAME>并重复步骤4。

希望有帮助!

答案 4 :(得分:1)

使用python3 -m venv命令创建virtualenv

我和你的问题一样。 在我的情况下,我用命令

创建了virtualenv
python3 -m venv ./my_virtual_env --system-site-packages

问题是我无法在虚拟环境中安装jupyter,因为它已经在system-site-package中(当你尝试安装它时,它告诉你&#34;要求已经满足&#34;)。 / p>

要安装jupyter,(并且在第一个实例pip中,使用此命令既不会在您的虚拟环境中安装)但仍可以访问system-site-package,您可以运行:

python3 -m venv ./my_virtual_env

激活您的虚拟环境,运行pip3 install jupyter(和pip3 install pip),然后在文件./my_virtual_env/pyvenv.cfg中打开选项include-system-site-packages。

停用并重新激活您的环境后,您将可以访问系统站点包。

使用virtualenv命令创建virtualenv

给定this answer,您可以通过创建文件来阻止对系统站点包的访问./my_virtual_env/lib/python3.4/no-global-site-packages.txt, 并通过删除它来获取访问权限。

答案 5 :(得分:0)

如果您使用以下方法创建了虚拟环境,仍然可以在虚拟环境中安装jupyter:

python -m venv --system-site-packages path/to/my-venv

只需执行以下操作:

activate-your-env
pip install -I jupyter

现在您可以开始了

jupyter notebook

答案 6 :(得分:0)

无需在全球范围内添加新内核的解决方案!

  1. 通过
  2. 创建新的虚拟环境
python3 -m virtualenv envname

  1. 激活环境并在其中安装jupyter
pip install jupyter

在安装jupyter之前,必须确保没有安装以下软件包。

ipykernel             
ipython               
ipython-genutils      
ipywidgets            
jupyter               
jupyter-client        
jupyter-console     
jupyter-core 

如果您以前已经安装了它们,请先通过pip uninstall卸载它们。

  1. 在激活的virtualenv中安装所需的软件包,然后在其中启动jupyter,瞧!