通过多个内核在Jupyter笔记本上运行多个Python版本(2.x.3.y,3.z)

2024-06-16 09:11:31 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我在下面提到的问题上犯了一些愚蠢的错误,我会直接道歉。我很长一段时间以来一直坚持这一点,试图成功地安装多个Python版本(通过单独的虚拟环境)并在Change kernel交换机中运行Jupyter notebook。你知道吗

目标:

Python 3.5.6作为默认值设置Anaconda,并创建两个Python 2.7.13Python 3.7.3版本的虚拟环境,并且能够在Windows上的Jupyter笔记本上切换这三个Python版本。你知道吗

接下来的过程:我做了什么(结果一团糟):

我首先成功地安装了Anaconda3,默认值为Python 3.5.6(安装在C:\ProgramData\Anaconda3),并设置了路径变量。Jupyter笔记本启动并运行了一个ipython内核,该内核运行于

(base)  jupyter kernelspec list
Available kernels:
python_3.5.6          C:\Users\username\AppData\Roaming\jupyter\kernels\python_3.5.6

而且kernel.json文件也被映射到正确的python版本。你知道吗

是的。你知道吗

然后我创建了我的第一个虚拟环境(Python_2.7.13_ENV):

(base)  conda create --p C:\ProgramData\Anaconda3\envs\Python_2.7.13_ENV python=2.7.13

在上面安装了jupyter

(base)  activate Python_2.7.13_ENV
(Python_2.7.13_ENV)  conda install notebook ipykernel
(Python_2.7.13_ENV)  python -m ipykernel install --p C:\Users\username\AppData\Roaming\jupyter\kernels\ --name Python_2.7.13_ENV --display-name "python_2.7.13"

我使用前缀符号作为默认的安装语法,为根用户安装它,我希望它只为特定用户安装。 这很有魅力。更新的jupyter kernelspec如下:

(base)  jupyter kernelspec list
Available kernels:
python_3.5.6        C:\Users\username\AppData\Roaming\jupyter\kernels\python_3.5.6
python_2.7.13       C:\Users\username\AppData\Roaming\jupyter\kernels\python_2.7.13

并且kernel.json文件也被映射到正确的python版本("C:\\ProgramData\\Anaconda3\\envs\\Python_2.7.13\\python.exe"

这也很有效。我可以在jupyter中打开一个文件并成功地在两个内核之间切换。你知道吗

是的。你知道吗

然后,我按照同样的步骤创建了第二个虚拟环境(Python_3.7.3_ENV):

现在,更新的kernelspec是:

(base)  jupyter kernelspec list
Available kernels:
python_3.5.6     C:\Users\username\AppData\Roaming\jupyter\kernels\python_3.5.6
python_2.7.13    C:\Users\username\AppData\Roaming\jupyter\kernels\python_2.7.13
python_3.7.3     C:\Users\username\AppData\Roaming\jupyter\kernels\python_3.7.3

而且kernel.json也被映射到正确的python版本。你知道吗

问题:

  • 两个虚拟环境都已成功创建。你知道吗
  • 现在,当我运行jupyter笔记本并尝试切换到Python 2.7.13 kernel时,它工作正常,但在切换到Python_3.7.3 kernel时会显示一个ImportError: DLL load failed (due to some import issue in zmq)。你知道吗
  • 然而,当我第一次激活Python_3.7.3_ENV虚拟环境,然后加载jupyter笔记本时,我能够在所有三个Python版本之间切换。你知道吗

如果可能的话,有人能提供一个解决方案,说明如何在所有三个版本之间切换而不事先激活虚拟环境,因为我可以使用Py 2.7和Py 3.5版本。

另外,我已经将右击ipynb文件时的“open with”默认值设置为jupyter-notebook.exe。你知道吗


Tags: 文件版本envbase虚拟环境username笔记本jupyter
1条回答
网友
1楼 · 发布于 2024-06-16 09:11:31

在这里和那里之后,唯一能让这个工作的方法就是激活虚拟环境。你知道吗

按照上述步骤,我安装了python2.7.13、3.5.6和3.7.3版本。我的默认python是python3.5.6,而其他两个版本分别安装在两个虚拟环境中Python_2.7.13_ENVPython_3.7.3_ENV。你知道吗

How to use them ?

  • 对于Python2.73.5,只需正常使用Jupyter notebooks。由于默认python设置为Python 3.5.6,因此使用Jupyter Notebook工具栏中的Change Kernel选项在两个版本之间切换没有问题。

  • 对于Python3.7,我们首先需要激活Python_3.7.3_ENV虚拟环境,然后使用Jupyter Notebook中的Change Kernel选项在所有三个版本之间成功切换。

相关问题 更多 >