"Library not loaded" 使用 Homebrew 升级 python 后出错
"Library not loaded" error after upgrade python with Homebrew
我使用 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
,它是位于虚拟环境顶层的 link(在您的例子中是 /Users/xxx/.local/share/virtualenvs/xxx-xxx
)。如果你去那里做 ls -l .Python
你可以看到它指向一个特定的自制软件 Cellar 目录(在我的例子中是 /usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/Python
)。此目录可能已被更新删除(执行 ls -l /usr/local/Cellar/python
以找出新的 directory/version。
删除 link 并让它指向新位置,例如为了我:
ln -s /usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/Python .Python
我使用 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
,它是位于虚拟环境顶层的 link(在您的例子中是 /Users/xxx/.local/share/virtualenvs/xxx-xxx
)。如果你去那里做 ls -l .Python
你可以看到它指向一个特定的自制软件 Cellar 目录(在我的例子中是 /usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/Python
)。此目录可能已被更新删除(执行 ls -l /usr/local/Cellar/python
以找出新的 directory/version。
删除 link 并让它指向新位置,例如为了我:
ln -s /usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/Python .Python