一尘不染

在不同环境中运行内核的jupyter笔记本

python

我陷入了某种可怕的virtualenv混乱之中。救命?!

我使用管理环境conda。直到最近,我还只有一个python2
jupyter笔记本内核,但是我决定将自己的脚步拖入21世纪,并安装了python3内核。我忘记了我是怎么做到的。

我的主要(anaconda)python默认为2.7。

因此,在这里,我很乐意尝试从闪亮的新python3内核中使用漂亮的汤,而且在能够找到其封装的任何环境下,我似乎都无能为力。Viz(全部来自笔记本):

from bs4 import BeautifulSoup

-> ImportError: No module named 'bs4'

好的,我将使用Shell Magic安装它。对?对?

! pip install bs4

--> Collecting bs4
  Downloading bs4-0.0.1.tar.gz
Requirement already satisfied (use --upgrade to upgrade): beautifulsoup4 in /Users/[MY-USER]/anaconda/lib/python2.7/site-packages (from bs4)
[...]
Successfully built bs4
Installing collected packages: bs4
Successfully installed bs4-0.0.1

from bs4 import BeautifulSoup

-> ImportError: No module named 'bs4'

不好了。即使我正在运行python3内核,它是否也认为我处于2.7 env中?那不会。

! conda info --envs
--> # conda environments:
#
flaskenv                 /Users/[MY-USER]/anaconda/envs/flaskenv
mesa                     /Users/[MY-USER]/anaconda/envs/mesa
py35                     /Users/[MY-USER]/anaconda/envs/py35
root                  *  /Users/[MY-USER]/anaconda

好的,我可以解决这个问题。其中之一是3.5 env。

! source activate py35
--> prepending /Users/[MY-USER]/anaconda/envs/py35/bin to PATH

! conda install beautifulsoup4
--> Fetching package metadata .......
Solving package specifications: ..........

# All requested packages already installed.
# packages in environment at /Users/[MY-USER]/anaconda:
#
beautifulsoup4            4.4.1                    py27_0

关于…

! pip install bs4
--> Requirement already satisfied (use --upgrade to upgrade): bs4 in /Users/[MY-USER]/anaconda/lib/python2.7/site-packages

更多有关…

from bs4 import BeautifulSoup

-> ImportError: No module named 'bs4'

哎呀! headdesk
上午我将不得不杀死内核为了解决这个问题(并重新运行一些工作)?杀死内核甚至可以正常工作吗?如何使我的jupyter内核知道应该在什么环境下运行?

谢谢!


阅读 254

收藏
2020-12-20

共1个答案

一尘不染

这是ipython / Jupyter的棘手部分。可用的内核集与启动jupyter
Notebook时的virtualenv无关。诀窍是在您想要对jupyter进行唯一标识的环境中设置ipykernel软件包。从多个ipykernels上的文档中

source activate ENVNAME
pip install ipykernel
python -m ipykernel install --user --name ENVNAME --display-name "Python (whatever you want to call it)"

如果您只想在conda环境中使用一个Python 3内核,只需使用python -m ipykernel install --user,它将默认Python重置为virtualenv中的一个。

是的,您将需要重新启动内核并重新运行前面的步骤。

2020-12-20