有没有一种方法可以在Jupyter notebook中使用pipenv?

100

有没有办法在Jupyter笔记本中使用pipenv?

更具体地说,与atom nteract/hydrogen Python 3内核一起使用?

4个回答

195

刚刚尝试了以下步骤并成功。

在您的项目文件夹中:

pipenv install ipykernel
pipenv shell

这将在您的虚拟环境中打开一个终端,就像这样:

(my-virtualenv-name) bash-4.4$

在那个外壳中执行:

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

启动Jupyter笔记本:

jupyter notebook
在你的笔记本中,选择“Kernel” -> “Change Kernel”。现在,您的内核应该是一个选项。

更改内核截图

来源:IPythonNotebookVirtualenvs

16
非常好,谢谢。为了将虚拟环境名称查找内联化: python -m ipykernel install --user --name=\basename $VIRTUAL_ENV` ` - u-phoria
这对我完美地起作用了。我在pipenv shell中需要使用'which python'获取我的环境名称。 - chrisfauerbach
2
有没有可能通过使用某种指向虚拟环境的标准内核来进一步避免ipykernel依赖?我在考虑那些我想要使用jupyter的项目,但其他人可能不需要。我更喜欢避免pipenv依赖中与我有关的任何特定内容。 - ClaytonJY
2
请注意,ipykernel也可以使用一行命令进行安装:pipenv run python -m ipykernel install --user --name=\pipenv run basename '$VIRTUAL_ENV'``(标准配置,虚拟环境在~/.venv/中)pipenv run python -m ipykernel install --user --name=\pipenv run dirname '$VIRTUAL_ENV' | xargs basename`(当PIPENV_VENV_IN_PROJECT=1`时) - ClaytonJY
1
@ClaytonJY 我发现我错了,在 pipenv shell 中使用 pip install ipykernel 和 pipenv install ipykernel 是一样的。唯一的区别是 pipenv install 会把包记录到 Pipfile 文件中,而 pip install 则不会。 - Jim
显示剩余3条评论

50

在 pipenv 内安装并启动 jupyter:

pipenv install jupyter
pipenv run jupyter notebook

通过pipenv安装的任何其他软件包(例如pipenv install numpy)也将在您的Jupyter笔记本会话中可用。


这对我来说也是最简单的方式。我只是想知道,这是否符合习惯用法?这与其他语言的做法相当不同。 - Kevin Wittek

4

Luis的答案在jupyter笔记本上完美运行。

但是对于特定的氢/原子,步骤如下:

pipenv install ipykernel
pipenv shell

在pipenv shell中启动atom

> atom

应该可以开始了!


在这里使用...我仍然需要执行python -m ipykernel install --user --name=my-virtualenv-name命令。 - David Folkner

4
我的答案基于之前的答案,但我发现还需要一个步骤 (pipenv install notebook)。所以总共有以下几个步骤: 步骤1:在终端上,首先安装jupyter和(jupyter) notebook。根据我的经验,后者必须显式安装:
pipenv install jupyter notebook

步骤2:安装适用于jupyter的Pipenv内核规范(修改自u-phoria的评论)。
pipenv run python -m ipykernel install --user --name=`basename $VIRTUAL_ENV`

现在以下内容应该可以正常工作:
pipenv run jupyter notebook

注意:如果在虚拟环境的Pipenv shell中,则可以从上面删除pipenv run。如果Pipenv被强制忽略虚拟环境,则应在该环境的shell中运行run命令。
对于使用Atom的原始问题,可以通过此pipenv运行它:
pipenv run atom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接