【发布时间】:2020-04-13 18:10:21
【问题描述】:
最近刚升级到 Mac OSX Catalina,它似乎已经破坏了我所有的 Python venv。
- 我有一个在升级到 Catalina 之前创建的 venv。
- 我可以毫无问题地激活 venv:
source venv/bin/activate - 当我输入
python或python3时,它实际上运行的是系统 Python 解释器,而不是我的 venv 中预期的 Python 解释器。
激活我的 venv...
>>> which python
/usr/bin/python
>>> which python3
/usr/local/bin/python3
我希望它指向/Users/<username>/<path-to-venv>/venv/bin/python3。
- 如果我尝试直接运行该 Python 解释器:
>>> /Users/<username>/<path-to-venv>/venv/bin/python3
bash: /Users/<username>/<path-to-venv>/venv/bin/python3: No such file or directory
- 如果我在 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