我需要在每个虚拟环境中安装Jupyter Notebook吗?

时间:2018-09-29 07:51:20

标签: jupyter-notebook pipenv virtual-environment

我使用pipenv将数据科学项目隔离到虚拟环境中。但是,运行Jupyter notebok不会访问本地环境,而是使用默认的IPyKernel。我已经seen可以在环境中注册虚拟环境,但这需要安装ipykernel软件包,该软件包本身需要Jupyter!

总有办法避免这种情况,仅对所有虚拟环境使用一个Jupyter安装吗?

3 个答案:

答案 0 :(得分:1)

通常,您将安装一次jupyter并在虚拟环境中执行以下操作:

pip install ipykernel  
python -m ipykernel install --user

当您运行多个Python版本时,这还不够。
这里有一个指南试图解决这个问题:
https://medium.com/@henriquebastos/the-definitive-guide-to-setup-my-python-workspace-628d68552e14

这不是100%的故障保护,但可以帮助您避免一直重新安装jupyter笔记本电脑。

答案 1 :(得分:0)

我找到了一种解决方法,希望能收到您的反馈。我将pipenv更改为通过添加到.bashrc / .bash_profile将虚拟环境安装到工作目录中:

export PIPENV_VENV_IN_PROJECT=1

现在,当打开Jupyter笔记本时,我只需将虚拟环境的软件包添加到Python路径:

import sys
sys.path.append('./.venv/lib/python3.7/site-packages/')

这是一个可怕的主意吗?

答案 2 :(得分:0)

我发现分别为每个环境重新安装jupyter时几乎没有问题:即在新环境中为pip install jupyter jupyterlab

我遇到了多个问题(有和没有Conda),当您在单元格中使用!pip install a_package_name时,Jupyter会将软件包安装到不同的python环境中。外壳环境仍然跟踪非环境python,您可以通过比较!which python

的输出来说明这一点。
import sys
sys.executable

因此,当您尝试导入该软件包时,它将不可用,因为这些单元使用了环境python /内核(因为它检测到venv目录)。