仅在单个虚拟环境中更改 Python 版本

仅在单个虚拟环境中更改 Python 版本

Gnome 终端仅在python3.6使用时才会运行。因此我创建了一个环境并按python3.9如下方式安装:

#!/usr/bin/env bash

sudo apt install python3-venv
python3 -m venv test_env
source test_env/bin/activate

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
apt list | grep python3.9
sudo apt-get install python3.9
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2
sudo update-alternatives --config python3
python3 -V

但是这会导致整个系统切换到python3.9并阻止终端工作。我该如何防止这种情况发生?

现在,运行source ~/.bashrc允许非 venv 终端继续工作。并python -V报告正确的版本3.6。但如果我关闭窗口,则无法重新打开它。我必须使用 IDE 中的终端重新选择旧版本的 python。运行:

sudo update-alternatives --install /usr/bin/python3 python3

显示实际上3.9已选择版本。尽管python -Vactuallt 报告正在运行python3.6

# Python 3.6.9


#  Selection    Path                 Priority   Status
# ------------------------------------------------------------
#  0            /usr/bin/python3.9    2         auto mode
#  1            /usr/bin/python3.10   2         manual mode
#  2            /usr/bin/python3.6    1         manual mode
#* 3            /usr/bin/python3.9    2         manual mode

答案1

正如 Vanadium 所述,使用PPA更新了 python 的系统版本。因此,即使从 venv 开始,我也在进行全局更改。

解决方案很明显;Python3 不运行 Python3,它运行系统上安装的任何版本的 python3,所以就我而言......

python3 -m venv test_env

正在设置 python3.6 venv。正在运行...

python3.9 -m venv test_env

似乎已正确设置了 python3.9 venv。为了强调这一点,为了使用 Hydrogen 在 ATOM IDE 中运行 python 代码,我必须在我的 3.9 venv 中运行...

python3.9 -m ipykernel install --user --name=atom_venv_py

因此,这只是一个指定在每个与 sys 版本有偏差的实例中要使用哪个版本的 python 的情况(IPython 内核是 Jupyter 的 Python 执行后端,允许 Hyrdogen 运行)。

相关内容