如何解决“ dyld:未加载库:@executable_path ..”错误


88

我试图在MAC OS X上检查AWS-CLI版本。以下错误回击了:

dyld: Library not loaded: @executable_path/../.Python
  Referenced from: /usr/local/aws/bin/python
  Reason: image not found
Abort trap: 6

任何有关如何解决此问题的相关意见将不胜感激。


11
当您brew install some_package在virtualenv内部时,可能会发生此错误。我认为发生的事情是brew在虚拟机内部工作。要修复它,请从您的virtualenv(rm -rf虚拟环境文件夹)中停用。然后从头开始重建它。然后发表大声的评论,说不要在虚拟环境中酝酿安装东西。
埃里克·莱斯钦斯基

如果您不想从头开始重建,请点击此链接,它对我
PAC

Answers:


78

它是awscli的错误,可能会在下一版本中修复。因此,最佳做法是升级:

brew upgrade awscli

12
如果您的符号链接损坏,则将无法使用。它会告诉您尚未安装awscli,您最终将不得不运行brew link --overwrite awscli,这对我有用。我赞成,因为这是正确道路上的起点。
str8up7od

如果按照AWS CLI页面上的说明,这将不起作用docs.aws.amazon.com/cli/latest/userguide/install-macos.html
jcollum

1
对于那些遇到类似问题的人eb,可以运行brew upgrade aws-elasticbeanstalk
肖恩·春

例如,我没有aswcli
Atombit

33

你一定把啤酒弄糟了。尝试使用以下命令重新安装它:(如果需要,请brew install awscli随后显示brew link awscli)。


这没有,也是由于这个错误:Error: awscli 1.14.60 is already installed
axel

16

发生此错误的原因是您的虚拟环境的符号链接已损坏。这是从tevino的fix_virtualenv要旨中得出的一个很好的解决方案:

#!/usr/bin/env bash

ENV_PATH="$(dirname "$(dirname "$(which pip)")")"
SYSTEM_VIRTUALENV="$(which -a virtualenv|tail -1)"

BAD_ENV_PATHS="/usr/local"

echo "Ensure the root of the broken virtualenv:"
echo "    $ENV_PATH"

if [[ -z "$ENV_PATH" ]] || [[ "$ENV_PATH" = *"$BAD_ENV_PATHS"* ]]; then
    echo "The root path above doesn't seems to be a valid one."
    echo "Please make sure you ACTIVATED the broken virtualenv."
    echo "‼️  Exiting for your safety... (thanks @laymonk for reporting this)"
    exit 1
fi

read -p "‼️  Press Enter if you are not sure (y/N) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    echo "♻️  Removing old symbolic links......"
    find "$ENV_PATH" -type l -delete -print
    echo "💫  Creating new symbolic links......"
    $SYSTEM_VIRTUALENV "$ENV_PATH"
    echo "🎉  Done!"
fi

另外,这是一个类似的问题: Virtualenvs中的引用损坏


令人惊讶的是,这立即解决了我的问题
Our_Benefactors

如何运行此?
Yokhen

3
解决方案摘要:1)通过运行删除虚拟环境中的所有符号链接find your-virtual-env-directory -type l -delete2)通过运行重新创建虚拟环境中的符号链接virtualenv your-virtual-env-directory
alejandro

OSError: Command /Users/defaultuser/D...o/venv/bin/python3.7 - setuptools pip wheel failed with error code -6运行命令时出现错误$SYSTEM_VIRTUALENV "$ENV_PATH"。不知道什么是错误代码“ -6”
jerrymouse

不要使用它!它删除了我在主目录中的所有重要符号链接。并没有创建任何新的。相反,它给出了错误行24:。:需要文件名参数
Atombit


2

在Mac上使用自制软件安装awscli时遇到类似问题。所以最终的方法是“ brew uninstall python3”,然后重新安装awscli。


2

如果您已经安装了python(python --version有效。如果未使用brew install python进行安装)。这个对我有用:

  1. 卸载aws

    $ sudo rm -rf /usr/local/aws
    $ sudo rm /usr/local/bin/aws
    
  2. 重新安装

    $ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
    $ unzip awscli-bundle.zip
    $ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
    

2

我通过常规方式卷曲安装了它

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

然后它停止工作,抱怨找不到 python2.7

dyld: Library not loaded: @executable_path/../.Python
  Referenced from: /usr/local/aws/bin/python2.7
  Reason: image not found
Abort trap: 6

因此,我按照以下步骤对其进行了修复(如果通过安装了它,请确保不要这样做brew):

$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws

然后我使用brew安装它:

$ brew upgrade
$ brew install awscli

2

通过在virtualenv中遇到问题,可以触发此错误。例如,我有一个正在运行的virtualenv并运行了brew install awscli,但由于这个错误而使我的virtualenv崩溃了。如果是这种情况,删除并重新创建您的virtualenv(与您最初创建它的方式相同)应该可以解决该问题。它对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.