【问题标题】:Unable to add another kernel to Jupyter notebook无法将另一个内核添加到 Jupyter 笔记本
【发布时间】:2020-06-22 14:16:07
【问题描述】:

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

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

但是,我想添加python3 内核。按照上面的帖子,我尝试了以下

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 错误?

【问题讨论】:

    标签: python jupyter-notebook virtualenv jupyter jupyter-lab


    【解决方案1】:

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

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

    从终端,首先激活你的 virtualenv(它应该有你在创建这个 env 时提到的 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
    

    【讨论】:

    • 但是我可以检查一下virtualenv -p python3 env 我们应该在哪里使用它吗?
    • 这个不用了,之前安装virtualenv的时候用过。
    • 很好,这意味着您的环境现在已激活。您可以在其中安装软件包并从那里启动 jupyter。
    • 还是显示jupyter notebook的路径?我所有的安装和软件包只会转到上面代码中提供的virtual env。我说的对吗?
    • 是的,pwd 显示了您笔记本的存储路径,是的,您的所有安装现在都将进入 env。实际上,您可以检查 which jupyter 是否会在 env 中显示 jupyter 路径。
    猜你喜欢
    • 2016-09-16
    • 2018-03-28
    • 2022-07-04
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    相关资源
    最近更新 更多