![仅在单个虚拟环境中更改 Python 版本](https://linux22.com/image/1025604/%E4%BB%85%E5%9C%A8%E5%8D%95%E4%B8%AA%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E4%B8%AD%E6%9B%B4%E6%94%B9%20Python%20%E7%89%88%E6%9C%AC.png)
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 -V
actuallt 报告正在运行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 运行)。