【问题标题】:python 3.7 venv broken after upgrade to Ubuntu 20.04升级到 Ubuntu 20.04 后,python 3.7 venv 损坏
【发布时间】:2020-08-15 20:55:41
【问题描述】:

我刚刚升级到 Ubuntu 20.04。我在虚拟环境中使用 Django 处理 python 3.7 项目,所以即使升级发行版(涉及安装 python 3.8)我的 venv 仍然可以工作。不幸的是,事实并非如此:当我激活我的 venv 时,python 的解释器仍然是 3.8 版本,没有任何作用。 python 3.7 完全丢失。我可以做些什么来恢复我的项目?

【问题讨论】:

  • 在 **python3 -m venv --upgrade venv/ ** 并手动重新安装每个 python 模块之后,它可以工作。现在,我的 git repo 仍然引用了旧的 python 版本,为了不错过我的 repo,我必须使用任何预防措施吗?理论上,在 github 上没有直接引用虚拟环境,所以它应该对使用的 python 版本是透明的。我错了吗?
  • 不确定你在问什么。但我认为将虚拟环境视为一次性事物通常会有所帮助。一旦发生变化,请立即删除它们并创建新的。正确的工具有助于促进这一点。首先是管理精确的依赖关系列表,例如requirements.txt 文件。从一个版本的 Python 解释器迁移到另一个版本应该很轻松。
  • @sinoroc 按照您的指示,我刚刚删除了 venv 文件夹并重新创建它。然后在requirements.txt 中安装了所需的模块,一切正常。我只是害怕错过一些东西

标签: python-3.x operating-system upgrade python-venv linux-distro


【解决方案1】:

对我来说同样的问题。如果您不想升级所有内容(也许并非所有软件包都可以升级),这是我的解决方案。

  1. 安装升级到 ubuntu 20 的 python 3.7

    sudo add-apt-repository ppa:deadsnakes/ppa
    sudo apt-get update
    sudo apt-get install python3.7
    
  2. 在您的 virtualenv 目录(例如 env/)中编辑 pyenv.cfg 中的最后一行

    version = 3.7
    
  3. 在env/bin中设置回python3的软链接链接回3.7

    ln -s  /usr/bin/python3.7 python3
    

您可能需要在创建新符号之前删除旧符号

现在,应该可以了:它对我有用!

【讨论】:

  • 错误:'python3.7' 没有安装候选者
【解决方案2】:

在我的例子中,当然,只需删除并重新创建虚拟环境,然后重新安装 Django,就可以解决这个问题。之后,只需重新加载 Apache,一切都恢复正常了。

【讨论】:

  • 是的,只是将 virtualenv 视为一种即插即用的项目
猜你喜欢
  • 2020-09-09
  • 2019-04-02
  • 1970-01-01
  • 2020-08-09
  • 1970-01-01
  • 2011-05-11
  • 2020-08-25
  • 2020-09-04
  • 2014-12-14
相关资源
最近更新 更多