如何在更新 ubuntu 时保留 python virtualenvs?

如何在更新 ubuntu 时保留 python virtualenvs?

我的一个朋友告诉我,当他升级到 ubuntu 20 时,他在 ubuntu 18 操作系统上拥有的每个 python 虚拟环境都变得毫无用处,我认为这是因为新的 python 版本 (3.8)。如果有人能给我提供某种解决方案来让这些虚拟环境保持“活跃”,我将不胜感激。我发现问题,但这不是我的情况(我想)。提前谢谢。

答案1

升级到 Ubuntu 20.04 时我遇到了同样的问题。原因是 Python 3.6 和 3.7 不再包含在系统软件包中。如果您使用 为 3.6/3.7 创建了虚拟环境virtualenv,它仍然需要匹配的系统解释器。您可以通过死蛇 PPA在 Ubuntu 20.04 中:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6 # and python3.6-venv, python3.6-dev if needed

在许多情况下,这还不够:检查ls -la| grep python3您的venv/bin目录,您会看到类似这样的链接:

lrwxrwxrwx 1 me me    16 Mai 10 16:20 python -> /usr/bin/python3
lrwxrwxrwx 1 me me     6 Mai 10 16:20 python3 -> python
lrwxrwxrwx 1 me me     6 Mai 10 16:20 python3.6 -> python

此环境链接到默认 Python,而不是专门链接到 Python 3.6。您需要像这样更改基本链接:

ln -sf /usr/bin/python3.6 python

然后,环境应该可以继续工作。不过我还没有亲自测试过,只是升级了我的环境。

答案2

另一个选择是pyenv它允许您在本地快速安装不同的 Python 版本。

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ . ~/.bashrc
$ pyenv install 3.6.9

您可以使用以下方式轻松地在 Python 版本之间切换:

$ pyenv global 3.6.9

这应该会让你回到你需要的 Python 版本。

相关内容