我已经安装了一个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?
答案 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)以及在该环境中安装的软件包,请按照以下步骤操作:
创建虚拟环境
mkvirtualenv --no-site-packages --python=/your/python/path your_env_name
激活虚拟环境
workon your_env_name
安装Jupyter和其他软件包
pip install jupyter, numpy
在Jupyter配置中添加新内核
ipython kernel install --user --name=your_env_name
完成。您现在可以在虚拟环境下使用Jupyter笔记本。
jupyter-notebook
免责声明:问题已得到解答,但隐藏在其中一个回复中。我用谷歌搜索并花了一些时间找到正确的答案。所以我只是总结一下,以便有同样问题的人可以轻松跟进。
答案 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
我和你的问题一样。 在我的情况下,我用命令
创建了virtualenvpython3 -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)
无需在全球范围内添加新内核的解决方案!
python3 -m virtualenv envname
pip install jupyter
在安装jupyter之前,必须确保没有安装以下软件包。
ipykernel
ipython
ipython-genutils
ipywidgets
jupyter
jupyter-client
jupyter-console
jupyter-core
如果您以前已经安装了它们,请先通过pip uninstall
卸载它们。