使用Homebrew升级python后出现“未加载库”错误

时间:2019-04-29 07:40:49

标签: python virtualenv homebrew pipenv

我使用pipenv这样创建virtualenv

pipenv --python /usr/local/bin/python3

使用Homebrew将python升级后,例如将python 3.7.2升级到3.7.3,使用pipenv shell激活virtualenv,并且使用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期间会发生什么?

也许这个问题看起来很愚蠢。但是我已经很困惑了。

谢谢。

1 个答案:

答案 0 :(得分:0)

我有同样的问题。缺少的库是.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