我最近在我的Mac上安装了一堆dotfiles和其他一些应用程序(我把Terminal换成了iTerm, Sublime作为我的默认文本编辑器),但从那以后,我所有的虚拟环境都停止了工作,尽管它们的文件夹在.virtualenvs中仍然存在,每当我试图在其中运行任何东西时,它们都会给出以下错误:

dyld: Library not loaded: @executable_path/../.Python
  Referenced from: /Users/[user]/.virtualenvs/modclass/bin/python
  Reason: image not found
Trace/BPT trap: 5

我已经删除了所有与dotfiles相关的文件,并将.bash_profile恢复到以前的状态,但问题仍然存在。有什么方法可以诊断问题或以一种简单的方式解决它(例如,不需要重新创建所有的virtualenv)?


当前回答

更新版本@Chris Wedgwood对保持站点包(保持安装包)的回答

cd ~/.virtualenv/name_of_broken_venv


mv lib/python2.7/site-packages ./    
rm -rf .Python bin lib include
virtualenv .
rm -rf lib/python2.7/site-packages
mv ./site-packages lib/python2.7/

其他回答

我尝试了最常用的几种方法,但对我来说,它们都不起作用。最终奏效的方法是:

sudo pip install tox

即使毒理已经安装好了。输出以:

Successfully built filelock
Installing collected packages: py, pluggy, toml, filelock, tox
Successfully installed filelock-3.0.10 pluggy-0.11.0 py-1.8.0 toml-0.10.0 tox-3.9.0

我(MacOS用户)的问题是,brew更新了Python和virtualenvs链接到旧版本,旧版本已被删除。

我们可以在

>> ls -al ~/.virtualenvs/<your-virtual-env>/.Python
.Python -> /usr/local/Cellar/python/<old-version>/Frameworks/Python.framework/Versions/3.7/Python
>> rm ~/.virtualenvs/<your-virtual-env>/.Python
>> ln -s  /usr/local/Cellar/python/<new-version>/Frameworks/Python.framework/Versions/3.7/Python ~/.virtualenvs/<your-virtual-env>/.Python

如果你用pipenv,用pipenv -rm就能解决问题。

我最近遇到了这个问题。以上的方法对我来说都没用。似乎这不是巨蟒的问题。当我运行aws s3 ls时,我得到以下错误:dyld:库未加载:@executable_path/../.Python 这意味着,aws可执行文件指向的库要么不存在,要么已经损坏,因此我从这个链接卸载并重新安装了aws-cli,它工作了!!

这发生在我从雪豹更新到Mac OS X Mavericks时。我必须事先重新安装brew。希望您使用pip为项目运行了冻结命令。

要解决这个问题,您必须更新虚拟环境所指向的路径。

使用brew安装一个python版本:

编译安装python

重新安装virtualenvwrapper。

PIP install——升级virtualenvwrapper

移除旧的虚拟环境:

rmvirtualenv old_project

创建一个新的虚拟环境:

mkvirtualenv new_project

在新的虚拟环境中工作

被new_project

使用pip来安装新项目的需求。

PIP install -r requirements.txt

这将使项目保持以前的状态。