【问题标题】:Cannot install Python 2 kernel in Jupyter Notebook无法在 Jupyter Notebook 中安装 Python 2 内核
【发布时间】:2021-02-26 11:00:24
【问题描述】:

我正在尝试使用为 Python 2.7 编写的 Python 程序。我正在使用运行 Catalina 的 Macbook Pro。程序在这里:https://github.com/geoss/censumander。该程序有两个 Jupyter Notebooks 可供练习。我安装了 Anaconda 4.9.2 和 pip 20.2.4。当我打开 Jupyter Notebook 时,它默认为 Python 3,并且没有内核选项可以更改为 Python 2。我已使用此处的指南尝试安装 Python 2 内核:https://ipython.readthedocs.io/en/latest/install/kernel_install.html

当我跑步时

python2 -m pip install ipykernel

我回来了

Could not find a version that satisfies the requirement ipykernel (from versions: )

No matching distribution found for ipykernel.

我对使用 Python(通常使用 R)非常陌生,并且正在尝试掌握这样的东西,所以如果这里的答案很明显,我深表歉意。我试过这里的解决方案无济于事:Jupyter notebook with Python 2 and Python3 Kernel

我也尝试过这里的解决方案:Jupyter Notebook - install python 2。第一种解决方案

$ python2 /path/to/jupyter-notebook

我不清楚,因为我不明白代码指向的文件路径(对于 jupyter_notebook)。 (这可能是我的菜鸟的结果。)

第二个,

conda create -n ipykernel_py2 python=2 ipykernel
conda activate ipykernel_py2    
python -m ipykernel install --user

在第三行之后触发以下回溯:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/runpy.py", line 163, in _run_module_as_main
    mod_name, _Error)
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/runpy.py", line 111, in _get_module_details
    __import__(mod_name)  # Do not catch exceptions initializing package
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/ipykernel/__init__.py", line 2, in <module>
    from .connect import *
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/ipykernel/connect.py", line 13, in <module>
    from IPython.core.profiledir import ProfileDir
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/IPython/__init__.py", line 49, in <module>
    from .terminal.embed import embed
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/IPython/terminal/embed.py", line 18, in <module>
    from IPython.terminal.interactiveshell import TerminalInteractiveShell
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/IPython/terminal/interactiveshell.py", line 16, in <module>
    from prompt_toolkit.document import Document
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/prompt_toolkit/__init__.py", line 16, in <module>
    from .interface import CommandLineInterface
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/prompt_toolkit/interface.py", line 19, in <module>
    from .application import Application, AbortAction
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/prompt_toolkit/application.py", line 3, in <module>
    from .buffer import Buffer, AcceptAction
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/prompt_toolkit/buffer.py", line 7, in <module>
    from .auto_suggest import AutoSuggest
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/prompt_toolkit/auto_suggest.py", line 13, in <module>
    from .filters import to_cli_filter
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/prompt_toolkit/filters/__init__.py", line 33, in <module>
    from .base import *
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/prompt_toolkit/filters/base.py", line 5, in <module>
    from prompt_toolkit.utils import test_callable_args
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/prompt_toolkit/utils.py", line 9, in <module>
    from wcwidth import wcwidth
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/wcwidth/__init__.py", line 12, in <module>
    from .wcwidth import ZERO_WIDTH  # noqa
  File "/opt/anaconda3/envs/ipykernel_py2/lib/python2.7/site-packages/wcwidth/wcwidth.py", line 79, in <module>
    from backports.functools_lru_cache import lru_cache
ImportError: No module named functools_lru_cache

谢谢大家。

【问题讨论】:

    标签: python pip jupyter-notebook kernel


    【解决方案1】:

    从 5.0 版开始,ipykernel 只能在 Python 3.4+ 上运行(从 5.2 版到 3.5+ 版)。要为 Python 2.7 安装 ipykernel`,您需要旧版本:

    python2 -m pip install 'ipykernel<5.0'
    

    对于 backports.functools-lru-cache 安装或强制重新安装:

    pip install -U backports.functools-lru-cache
    

    pip install --ignore-installed backports.functools-lru-cache
    

    【讨论】:

    • 感谢您的回复。第一个命令给出:Could not find a version that satisfies the requirement ipykernel&lt;5.0 (from versions: ) No matching distribution found for ipykernel&lt;5.0 你能澄清一下backports.functools 的作用吗?
    • pip install 'ipykernel==' 并查看可用的版本。对我来说,名单是4.0.1, 4.0.2, 4.0.3, 4.1.0, 4.1.1, 4.2.0, 4.2.1, 4.2.2, 4.3.0, 4.3.1, 4.4.0, 4.4.1, 4.5.0, 4.5.1, 4.5.2, 4.6.0, 4.6.1, 4.7.0, 4.8.0, 4.8.1, 4.8.2, 4.9.0, 4.10.0, 4.10.1
    • ERROR: Could not find a version that satisfies the requirement ipykernel== (from versions: 4.0.1, 4.0.2, 4.0.3, 4.1.0, 4.1.1, 4.2.0, 4.2.1, 4.2.2, 4.3.0, 4.3.1, 4.4.0, 4.4.1, 4.5.0, 4.5.1, 4.5.2, 4.6.0, 4.6.1, 4.7.0, 4.8.0, 4.8.1, 4.8.2, 4.9.0, 4.10.0, 4.10.1, 5.0.0b1, 5.0.0, 5.1.0, 5.1.1, 5.1.2, 5.1.3, 5.1.4, 5.2.0, 5.2.1, 5.3.0, 5.3.1, 5.3.2, 5.3.3, 5.3.4) ERROR: No matching distribution found for ipykernel==
    • 我看到版本 5+,所以您的 pip 不是来自 Python 2.7。试试python2 -m pip install 'ipykernel=='
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    相关资源
    最近更新 更多