如何 运行 Jupyter Notebook 与不同版本的 Python?
How to run Jupyter Notebook with a different version of Python?
我希望能够 运行 Python 3.8(当前版本)和 Python 3.7 在我的 Jupyter Notebook 中。我了解从虚拟环境创建不同的 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
这也运行s没有报错,可以确认内核添加到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
,但即使是内核也不能在笔记本中正常工作.
我能做什么?
注意:我使用Arch Linux,所以我安装了jupyter,virtualenv, ... 通过 pacman 而不是 Arch 中推荐的 pip
我自己找到的,很艰难。不管怎样,让我分享一下,以防对任何人有帮助。
我猜,问题是,通过 pacman 安装的 jupyter notebook 在 PATH 变量中搜索 python 二进制文件,而不是在虚拟指定的路径中环境。由于我在本地主目录中安装了 Python 3.7,因此 Jupyter 无法找到它,它可能默认为默认的 python 版本。
所以可能的解决方案是:
- 在 Python 3.7 [=25] 上设置的虚拟环境中,通过 pip(而不是 pacman)安装 Jupyter Notebook =](完全不推荐给 Arch Linux 用户,因为通过 pip 安装软件包可能会在未来引起问题)
> wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
> tar -xvf Python-3.7.4.tgz
> cd Python-3.5.1/
> ./configure --prefix=$HOME/Python37
> make
> make install
> virtualenv -p ~/Python3.7/bin/python3 py37
> source py37/bin/activate
(py37) > pip install notebook
(py37) > python -m notebook
- 在默认目录中安装 Python 3.7(而不是指定其他位置)。使用合适的虚拟环境创建一个新的 IPython 内核,并使用通过 pacman 安装的 jupyter-notebook。 (推荐给 Arch Linux 用户)
注1:> python
指向更新的全局Python3.8版本,> python3
或> python3.7
指向新安装的Python3.7
注意 2:一旦创建了所需的内核,您甚至可以在虚拟环境之外使用该 python 版本。
> wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
> tar -xvf Python-3.7.4.tgz
> cd Python-3.5.1/
> ./configure
> make
> sudo make install
> virtualenv -p $(which python3.7) py37
> source py37/bin/activate
(py37) > ipython kernel install --user --name py37 --display-name "Python 3.7"
(py37) > jupyter notebook
- 将本地安装新Python版本的目录路径添加到$PATH变量,创建一个IPython内核和运行 Jupyter Notebook 在合适的虚拟环境中。 (还没有亲自尝试过这个。只是觉得这应该有效。所以不能保证。而且我认为这不是一个好的解决方案)
> wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
> tar -xvf Python-3.7.4.tgz
> cd Python-3.5.1/
> ./configure --prefix=$HOME/Python37
> make
> make install
> export PATH="$HOME/Python37/bin:$PATH"
> virtualenv -p py37
> source py37/bin/activate
(py37) > ipython kernel install --user --name py37 --display-name "Python 3.7"
(py37) > jupyter notebook
另一种方法是 运行 笔记本应用程序直接使用您需要的 Python 版本 - 前提是它是为 Python 版本安装的(例如在 Mac 使用 brew 安装版本 Python3.8):
/usr/local/opt/python@3.8/bin/python3 -m notebook
此外,如果您想安装该版本的软件包:
/usr/local/opt/python@3.8/bin/pip3 install that_package
我希望能够 运行 Python 3.8(当前版本)和 Python 3.7 在我的 Jupyter Notebook 中。我了解从虚拟环境创建不同的 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
这也运行s没有报错,可以确认内核添加到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
,但即使是内核也不能在笔记本中正常工作.
我能做什么?
注意:我使用Arch Linux,所以我安装了jupyter,virtualenv, ... 通过 pacman 而不是 Arch 中推荐的 pip
我自己找到的,很艰难。不管怎样,让我分享一下,以防对任何人有帮助。
我猜,问题是,通过 pacman 安装的 jupyter notebook 在 PATH 变量中搜索 python 二进制文件,而不是在虚拟指定的路径中环境。由于我在本地主目录中安装了 Python 3.7,因此 Jupyter 无法找到它,它可能默认为默认的 python 版本。
所以可能的解决方案是:
- 在 Python 3.7 [=25] 上设置的虚拟环境中,通过 pip(而不是 pacman)安装 Jupyter Notebook =](完全不推荐给 Arch Linux 用户,因为通过 pip 安装软件包可能会在未来引起问题)
> wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz > tar -xvf Python-3.7.4.tgz > cd Python-3.5.1/ > ./configure --prefix=$HOME/Python37 > make > make install > virtualenv -p ~/Python3.7/bin/python3 py37 > source py37/bin/activate (py37) > pip install notebook (py37) > python -m notebook
- 在默认目录中安装 Python 3.7(而不是指定其他位置)。使用合适的虚拟环境创建一个新的 IPython 内核,并使用通过 pacman 安装的 jupyter-notebook。 (推荐给 Arch Linux 用户)
注1:> python
指向更新的全局Python3.8版本,> python3
或> python3.7
指向新安装的Python3.7
注意 2:一旦创建了所需的内核,您甚至可以在虚拟环境之外使用该 python 版本。
> wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz > tar -xvf Python-3.7.4.tgz > cd Python-3.5.1/ > ./configure > make > sudo make install > virtualenv -p $(which python3.7) py37 > source py37/bin/activate (py37) > ipython kernel install --user --name py37 --display-name "Python 3.7" (py37) > jupyter notebook
- 将本地安装新Python版本的目录路径添加到$PATH变量,创建一个IPython内核和运行 Jupyter Notebook 在合适的虚拟环境中。 (还没有亲自尝试过这个。只是觉得这应该有效。所以不能保证。而且我认为这不是一个好的解决方案)
> wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz > tar -xvf Python-3.7.4.tgz > cd Python-3.5.1/ > ./configure --prefix=$HOME/Python37 > make > make install > export PATH="$HOME/Python37/bin:$PATH" > virtualenv -p py37 > source py37/bin/activate (py37) > ipython kernel install --user --name py37 --display-name "Python 3.7" (py37) > jupyter notebook
另一种方法是 运行 笔记本应用程序直接使用您需要的 Python 版本 - 前提是它是为 Python 版本安装的(例如在 Mac 使用 brew 安装版本 Python3.8):
/usr/local/opt/python@3.8/bin/python3 -m notebook
此外,如果您想安装该版本的软件包:
/usr/local/opt/python@3.8/bin/pip3 install that_package