Come risolvere l'errore "dyld: Libreria non caricata: @executable_path .."


98

Stavo cercando di controllare la versione di AWS-CLI sul mio MAC OS X. E l'errore seguente ha risposto:

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

Qualsiasi input pertinente su come risolvere questo problema sarebbe molto apprezzato.


11
Questo errore può verificarsi quando ti brew install some_packagetrovi all'interno di un virtualenv. Penso che quello che succede è che brew fa il suo lavoro all'interno del vm. Per risolverlo, disattiva dal tuo virtualenv, rm -rfla cartella del tuo ambiente virtuale. Quindi ricostruiscilo da zero. Quindi inserisci un commento ad alta voce che dice di non preparare roba per l'installazione all'interno di un ambiente virtuale.
— Eric Leschinski

Se non vuoi ricostruirlo da zero segui questo link Ha funzionato per me
— PAC

Risposte:


79

È un bug di awscli e potrebbe essere corretto con le prossime versioni. Ecco perché, una best practice è aggiornare:

brew upgrade awscli

12
se hai un collegamento simbolico non funzionante, questo non funzionerà. ti dirà che awscli non è installato e finirai per dover eseguire brew link --overwrite awsclied è quello che ha funzionato per me. Ho votato positivamente perché era un inizio sulla strada giusta.
— str8up7od

Se segui le istruzioni sulla pagina della AWS CLI, questo non funzionerà docs.aws.amazon.com/cli/latest/userguide/install-macos.html
— jcollum

1
Una nota simile per coloro che riscontrano un problema simile con eb, puoi eseguire brew upgrade aws-elasticbeanstalk.
— Sean Chon

1
Non ho aswcli, ad esempio
— Atombit

Ricevo questo errore e non sono connesso a aws-cli. Eseguo più virtualenv sul mio laptop e il mio python3 è stato recentemente aggiornato da 3.7 a 3.9
— Rohit Chatterjee

33

Devi aver incasinato la birra. Prova a reinstallarlo usando: brew install awscli(seguito da brew link awsclise necessario).


Ciò non ha funzionato, anche a causa di questo errore:Error: awscli 1.14.60 is already installed
— axel

17

Questo errore si verifica perché il tuo ambiente virtuale ha collegamenti simbolici interrotti. Ecco una bella soluzione presa dal succo di tevinofix_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

Inoltre, ecco una domanda simile: riferimenti interrotti in Virtualenvs .


Incredibile, questo ha risolto immediatamente il mio problema
— Our_Benefactors

Come si esegue questo?
— Yokhen

3
Riepilogo della soluzione: 1) Elimina tutti i link simbolici all'interno del tuo ambiente virtuale eseguendo find your-virtual-env-directory -type l -delete2) Ricrea i link simbolici all'interno del tuo ambiente virtuale eseguendovirtualenv your-virtual-env-directory
— alejandro,

Ricevo l'errore OSError: Command /Users/defaultuser/D...o/venv/bin/python3.7 - setuptools pip wheel failed with error code -6quando eseguo il comando $SYSTEM_VIRTUALENV "$ENV_PATH". Non
— ho

Non usarlo! Ha cancellato tutti i miei collegamenti simbolici importanti nella directory home. e non ne ha creati di nuovi. Invece ha fornito una riga di errore 24:.: Argomento nome file richiesto
— Atombit

14

Dopo aver letto l'argomento, funziona per me:

  1. Disinstalla aws
$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws
  1. Reinstallalo di nuovo
    $ brew reinstall awscli

5
Lo stesso problema, tutto quello che ho fatto è stato brew reinstall awsclied è stato risolto. Grazie
— Jordon Biondo

2

Ho avuto un problema simile durante l'installazione di awscli con homebrew su mac. Quindi l'approccio finale era "brew disinstallare python3" e reinstallare nuovamente awscli.


2

Se hai già python ( python --version funziona. In caso contrario installalo con brew install python ). Per me funziona:

  1. Disinstalla aws

    $ sudo rm -rf /usr/local/aws
    $ sudo rm /usr/local/bin/aws
    
  2. Installalo di nuovo

    $ 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

L'ho fatto installare tramite curl, in modo normale

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

Poi ha smesso di funzionare lamentandosi di non aver trovato python2.7

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

quindi l'ho risolto seguendo questi passaggi (assicurati di non farlo se lo hai installato tramite brew):

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

Quindi l'ho installato usando brew:

$ brew upgrade
$ brew install awscli

2

È possibile attivare questo errore avendo un problema nel tuo virtualenv. Ad esempio, avevo un virtualenv funzionante esistente brew install awsclie ho eseguito e ha rotto il mio virtualenv con questo errore. In questo caso, eliminare e ricreare il tuo virtualenv (nello stesso modo in cui l'hai creato originariamente) dovrebbe risolvere il problema. Lo ha fatto per me.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.