最近刚刚升级到 Mac OSX Catalina,它似乎已经破坏了我所有的 Python 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
.>>> /Users/<username>/<path-to-venv>/venv/bin/python3
bash: /Users/<username>/<path-to-venv>/venv/bin/python3: No such file or directory
python3
文件存在,尽管它实际上是一个别名。如果我双击它,我会弹出一条错误消息,内容为:The operation can't be completed because the original item for "Python3" can't be found.
所以我认为这些 venv 的工作方式是它们基于对现有 Python 解释器安装的引用。显然,运行 venv 会调用这些引用,如果原始安装被破坏,它将失败。我知道 Catalina 使用了默认的 Python 设置,甚至更改了安装目录。
有人遇到过这种情况么?任何人都可以提供解决此问题的提示吗?这似乎影响了我系统中的所有 venv 虚拟环境。
最佳答案
您可以尝试在同一文件夹中创建新的 venv 或更新现有的 venv。通过以下所有内容,我假设您已经使用捆绑的 venv 创建了虚拟环境。模块
python3 -m venv <path_to_dir>
--upgrade
参数是你要找的。 您需要使用目标 Python 版本运行它,例如在本例中:
python3 -m venv --upgrade <path_to_dir>
更多详情请看我的回答here
关于python - Macos Catalina 破坏了所有 Python Venvs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59438630/