【问题标题】:Mac OSX Catalina Broke All Python Venv'sMacos Catalina 破坏了所有 Python Venv
【发布时间】:2020-04-13 18:10:21
【问题描述】:

最近刚升级到 Mac OSX Catalina,它似乎已经破坏了我所有的 Python venv。

  1. 我有一个在升级到 Catalina 之前创建的 venv。
  2. 我可以毫无问题地激活 venv:source venv/bin/activate
  3. 当我输入 pythonpython3 时,它实际上运行的是系统 Python 解释器,而不是我的 venv 中预期的 Python 解释器。

激活我的 venv...

>>> which python
/usr/bin/python
>>> which python3
/usr/local/bin/python3

我希望它指向/Users/<username>/<path-to-venv>/venv/bin/python3

  1. 如果我尝试直接运行该 Python 解释器:
>>> /Users/<username>/<path-to-venv>/venv/bin/python3

bash: /Users/<username>/<path-to-venv>/venv/bin/python3: No such file or directory
  1. 如果我在 Finder 中导航到这个 venv 目录,我可以看到 python3 文件存在,尽管它实际上是一个别名。如果我双击它,我会弹出一条错误消息:The operation can't be completed because the original item for "Python3" can't be found.

所以我认为这些 venv 的工作方式是它们基于对现有 Python 解释器安装的引用。显然,运行 venv 会调用这些引用,如果原始安装被破坏,它将失败。我知道 Catalina 使用了默认的 Python 设置,甚至更改了安装目录。

有没有其他人遇到过这种情况?任何人都可以提供解决此问题的提示吗?这似乎影响了我整个系统中的所有 venv 虚拟环境。

【问题讨论】:

  • 重新生成虚拟环境可能比修复依赖于更新前路径的虚拟环境更容易。
  • 激活虚拟环境是一个非常轻量级的操作:它只是设置了一些环境变量,比如PATH。它不取决于您期望找到实际存在的解释器。
  • @hobscrk777 OP 你找到解决方案了吗?我也有同样的问题

标签: python python-3.x macos virtualenv macos-catalina


【解决方案1】:

您可以尝试在同一文件夹中创建新的 venv 或更新现有的 venv。通过以下所有内容,我假设您已经使用捆绑的 venv 模块创建了虚拟环境

  • 对于创建它是您可能已经使用过的命令
python3 -m venv <path_to_dir>
  • 为了更新,--upgrade 参数就是您要查找的参数。

您需要使用目标 Python 版本运行它,例如在这种情况下:

python3 -m venv --upgrade <path_to_dir>

更多详情请看我的回答here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 2019-02-24
    • 2021-04-22
    相关资源
    最近更新 更多