我希望能在我的Jupyter Notebook中同时运行Python 3.8(当前版本)和Python 3.7。我知道可以通过在虚拟环境中创建不同的IPython内核来实现。 因此,我下载了Python 3.7并将其本地安装在我的主目录中。使用这个python二进制文件创建了一个虚拟环境:
> virtualenv -p ~/Python3.7/bin/python3 py37
> source py37/bin/activate
这很完美地运行,并通过检查
python --version
和 sys.version
正确地显示 'Python 3.7'。
然后,为了创建IPython内核,(py37) > ipython kernel install --user --name py37 --display-name "Python 3.7"
(py37) > jupyter notebook
这也可以无错误运行,可以确认内核已添加到笔记本中。但它不像虚拟环境那样运行Python 3.7,而是像默认内核一样运行Python 3.8(通过 sys.version
确认)。
我检查了 ~/.local/share/jupyter/kernels/py37/kernel.json
的内容,发现其内容如下:
{
"argv": [
"/usr/bin/python3",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3.7",
"language": "python"
自然而然,我尝试编辑 /usr/bin/python3
,将其指向我的 Python 3.7 二进制文件路径 ~/Python3.7/bin/python3
,但是在笔记本中,甚至内核都无法正常工作。
我该怎么办呢?
NB:我使用的是 Arch Linux,所以我通过 pacman 而不是像 Arch 推荐的那样使用 pip 安装了 jupyter,virtualenv 等。