python - 使用 Homebrew 升级 python 后出现“库未加载”错误
问题描述
我使用 pipenv 像这样创建 virtualenv
pipenv --python /usr/local/bin/python3
用 Homebrew 升级 python 后,比如 python 3.7.2 到 3.7.3,活动 virtualenv with pipenv shell
,并且用 python 做任何事情都会出现这样的错误
python3 --version
dyld: Library not loaded: @executable_path/../.Python
Referenced from: /Users/xxx/.local/share/virtualenvs/xxx-xxx/bin/python3
Reason: image not found
[1] 60198 abort python3 --version
我所知道/usr/local/bin/python3
的仍然存在,在系统级别运行 python 很好。只在 virtualenv 中调用 python 是错误的。
现在我已经删除了 virtualenvs 并再次使用 pipenv 创建它,它将解决这个问题。但是做这些事情会丢失所有的 pip 包,所以我需要重新安装它们。
那么,是否有一些聪明的方法来解决这个问题呢?或者 Homebrew 升级 python 期间会发生什么?
也许这个问题看起来很愚蠢。但我困惑了很久。
提前致谢。
解决方案
我有同样的问题。缺少的库是.Python
位于虚拟环境顶层的链接(在您的情况下/Users/xxx/.local/share/virtualenvs/xxx-xxx
)。如果你去那里,ls -l .Python
你能看到它指向一个特定的自制酒窖目录(在我的例子中/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/Python
)。此目录可能已被更新删除(ls -l /usr/local/Cellar/python
查找新目录/版本。
删除链接并让它指向新位置,例如对我来说:
ln -s /usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/Python .Python
推荐阅读
- reactjs - React formik 表单验证:如何最初禁用提交按钮
- c++ - 在 Visual Studio Code C++ MinGW 中运行时修改代码
- android - 确定 Android 中其他模块的 buildType
- javascript - 如果在某些情况下没有异步操作,JavaScript 是否可以在不等待第 n 行的情况下执行第 n+1 行代码?
- php - 无法重定向到控制器仪表板
- c# - 如何使用 c# 在 php 网页中浏览
- html - 不能在 div 内垂直居中 h1
- css - 媒体查询条件样式组件
- java - JAVA Spring Basic CRUD API 实现抛出错误
- ruby - 放出每部电影的名字,