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.