Como resolver o erro “dyld: Biblioteca não carregada: @executable_path ..”


88

Eu estava tentando verificar a versão AWS-CLI no meu MAC OS X. E o erro abaixo respondeu:

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

Quaisquer informações relevantes sobre como consertar isso seriam muito apreciadas.


11
Este erro pode ocorrer brew install some_packagequando você está dentro de um virtualenv. Acho que o que acontece é que a cerveja funciona dentro da VM. Para consertar, desative de seu virtualenv, rm -rfsua pasta de ambiente virtual. Em seguida, reconstrua-o do zero. Em seguida, coloque um comentário em voz alta que diz não preparar coisas de instalação dentro de um ambiente virtual.
Eric Leschinski

Se você não quiser reconstruí-lo do zero, siga este link Funcionou para mim
PAC

Respostas:


78

É um bug do awscli e pode ser corrigido nas próximas versões. É por isso que uma prática recomendada é atualizar:

brew upgrade awscli

12
se você tiver um link simbólico quebrado, isso não funcionará. ele dirá que o awscli não está instalado e você terá que executá-lo brew link --overwrite awsclie foi isso que funcionou para mim. Eu votei a favor porque foi um começo no caminho certo.
str8up7od

Se você seguir as instruções na página AWS CLI, isso não funcionará docs.aws.amazon.com/cli/latest/userguide/install-macos.html
jcollum

1
Uma nota semelhante para aqueles que estão enfrentando um problema semelhante com eb, você pode executar brew upgrade aws-elasticbeanstalk.
Sean Chon

Não tenho aswcli, por exemplo
Atombit

33

Você deve ter bagunçado a bebida. Tente reinstalá-lo usando: brew install awscli(seguido de, brew link awsclise necessário).


Isso não aconteceu, também devido a este erro:Error: awscli 1.14.60 is already installed
axel

16

Este erro ocorre porque seu ambiente virtual quebrou os links simbólicos. Aqui está uma boa solução tirada da fix_virtualenvessência de Tevino :

#!/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

Além disso, aqui está uma questão semelhante: referências quebradas no Virtualenvs .


Incrível, isso corrigiu meu problema imediatamente
Nossos_Benefatores

Como funciona isso?
Yokhen

3
Resumo da solução: 1) Exclua todos os links simbólicos dentro de seu ambiente virtual executando find your-virtual-env-directory -type l -delete2) Recrie os links simbólicos dentro de seu ambiente virtual executandovirtualenv your-virtual-env-directory
alejandro

Estou recebendo o erro OSError: Command /Users/defaultuser/D...o/venv/bin/python3.7 - setuptools pip wheel failed with error code -6quando executo o comando $SYSTEM_VIRTUALENV "$ENV_PATH". Não
tenho

Não use isso! Ele excluiu todos os meus links simbólicos importantes no diretório inicial. e não criou nenhum novo. Em vez disso, deu uma linha de erro 24:.: Argumento de nome de arquivo necessário
Atombit

12

Depois de ler o tópico, funciona para mim:

  1. Desinstalar aws
$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws
  1. Reinstalar novamente
    $ brew reinstall awscli

4
O mesmo problema, tudo o que fiz foi brew reinstall awsclie foi corrigido. Obrigado
Jordon Biondo

2

Tive um problema semelhante ao instalar o awscli com homebrew no mac. Portanto, a abordagem final foi "preparar a desinstalação do python3" e reinstalar o awscli novamente.


2

Se você já tem o python ( python - versão funciona. Caso contrário, instale-o com o brew instale o python ). Funciona para mim:

  1. Desinstalar aws

    $ sudo rm -rf /usr/local/aws
    $ sudo rm /usr/local/bin/aws
    
  2. Instale novamente

    $ 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

Eu o instalei através do curl, da maneira normal

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

Então parou de funcionar reclamando de não encontrar python2.7

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

então eu corrigi seguindo estas etapas (certifique-se de não fazer isso se tiver instalado por meio brew):

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

Então eu instalei usando brew:

$ brew upgrade
$ brew install awscli

2

É possível acionar esse erro por ter um problema no seu virtualenv. Por exemplo, eu tinha um virtualenv em funcionamento e executei brew install awsclie ele quebrou meu virtualenv com este erro. Se for esse o caso, excluir e recriar seu virtualenv (da mesma forma que você o criou originalmente) deve resolver o problema. Isso fez para mim.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.