【问题标题】:"Library not loaded" error after upgrade python with Homebrew使用 Homebrew 升级 python 后出现“库未加载”错误
【发布时间】:2019-09-17 19:33:33
【问题描述】:

我使用 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 过程中发生了什么?

也许这个问题看起来很愚蠢。但是我迷茫了很久。

提前致谢。

【问题讨论】:

    标签: python virtualenv homebrew pipenv


    【解决方案1】:

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

    【讨论】:

    • 谢谢。其他人都说要在 venv 中运行 brew 后核对你的 venv 并重新开始。这为我解决了问题。
    猜你喜欢
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2019-03-07
    • 2020-01-19
    • 2019-05-21
    相关资源
    最近更新 更多