无法向 Jupyter Notebook 添加另一个内核

Unable to add another kernel to Jupyter notebook

我已经提到了这个相关的post

目前正在使用 Jupyter Notebook,它只有 Python2 内核。但是我的服务器有 Python2 和 Python3.

不过,我想添加python3内核。按照上面的post,我尝试了下面的

1 !mkdir python-virtual-environments && cd python-virtual-environments && virtualenv env && virtualenv -p python3 env && . env/bin/activate   #activated virtual environment
2 !jupyter kernelspec list  #lists only Python2 kernel  
3 !which python3 # outputs the python3 path `/usr/bin/python3`
4 !pip install ipykernel  # stream of requirement already satisfied messages
5 !python3 -m pip install ipykernel  # error-1
6 !python3 -m ipykernel install --user # error-2 

我收到以下错误

错误-1

Exception:
Traceback (most recent call last):
  File "/usr/lib/python3.5/shutil.py", line 538, in move
    os.rename(src, real_dst)
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3/dist-packages/prompt_toolkit' -> '/tmp/pip-rgd7fgjj-uninstall/usr/lib/python3/dist-packages/prompt_toolkit
.....
PermissionError: [Errno 13] Permission denied: 'toolbars.py'

错误-2

PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.5/dist-packages/tornado-6.0.4.dist-info'
You are using pip version 9.0.1, however version 20.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
/usr/bin/python3: No module named ipykernel

问题

  1. 当我激活 virtualenv 时,我在激活后执行的所有命令(第 2、3、4、5、6 行)都在我的虚拟机中 运行环境。我说得对吗?

  2. 第 4 行有一个已满足要求的消息流。我正在尝试在我的虚拟环境中安装 ipykernel。为什么说已经满足了。它正在查看我的系统安装,因为消息有 python2.7.2?

  3. 第 5 行,为什么会出现 permission denied 错误?

问题是你 运行 使用 ! 的 jupyter notebook 中的所有内容都会为每个命令启动一个临时 shell,因此你的所有命令都在不同的 shell。因此,virtualenv 是 not 激活的,当你使用 pip 时你会得到满足的要求,因为它正在检查系统的 python.

需要用终端激活虚拟环境(虽然用jupyter也可以,但是有点麻烦):

首先从终端激活您的 virtualenv(它应该有 python 3,正如您在创建此环境时提到的那样 (virtualenv -p python3 env)):

. python-virtual-environments/env/bin/activate

它应该在激活时显示类似 (env) $ 的内容,然后如果您检查 python 和 pip,它应该给您的环境 python 和 pip。

(env) $  which python
home/abcd/python-virtual-environments/env/bin/python
(env) $  which pip
/home/abcd/python-virtual-environments/env/bin/pip

现在,如果尚未安装内核,您可以安装它:

(env) ➜ pip install ipykernel