我刚刚升级到 Ubuntu 20.04。我正在虚拟环境中使用 Django 处理一个 python 3.7 项目,所以我相信即使升级了发行版(涉及安装 python 3.8),我的 venv 仍然可以工作。不幸的是,情况并非如此:当我激活 venv 时,python 的解释器仍然是 3.8 版本,并且没有任何作用。 python 3.7 完全缺失。我可以做什么来恢复我的项目?
我也有同样的问题。如果您不想升级所有内容(也许并非所有软件包都可升级),这是我的解决方案。
安装 python 3.7,升级到 ubuntu 20 后就消失了
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.7
在您的 virtualenv 目录(例如 env/)中编辑 pyenv.cfg 中的最后一行
version = 3.7
在 env/bin 中设置回 python3 的软链接链接回 3.7
ln -s /usr/bin/python3.7 python3
您可能需要在创建新符号之前删除旧符号
现在应该有用了:它对我有用!
就我而言,只需删除并重新创建虚拟环境,然后重新安装 Django,就可以解决这个问题。之后,只需重新加载 Apache,一切就又恢复正常了。
当我遇到这种情况时,我没有删除 venv,而是将其移动到 venv.broken,然后安装了新的 venv。 (对我来说)这样做的优点是在安装需求时。我随后发现我的requirements.txt缺少一些重要的包。通过检查 venv.broken 中的 site_packages 目录,可以找出缺少的内容。