Comment résoudre l'erreur «dyld: Bibliothèque non chargée: @executable_path ..»


88

J'essayais de vérifier la version AWS-CLI sur mon MAC OS X. Et l'erreur ci-dessous a été renvoyée:

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

Toute contribution pertinente sur la façon de résoudre ce problème serait très appréciée.


11
Cette erreur peut se produire lorsque brew install some_packagevous êtes dans un virtualenv. Je pense que ce qui se passe, c'est que Brew fait son travail dans le vm. Pour y remédier, désactivez de votre virtualenv, rm -rfvotre dossier d'environnement virtuel. Puis reconstruisez-le à partir de zéro. Ensuite, mettez un commentaire fort qui dit de ne pas installer de trucs dans un environnement virtuel.
Eric Leschinski

Si vous ne voulez pas le reconstruire à partir de zéro, suivez ce lien Cela a fonctionné pour moi
PAC

Réponses:


78

C'est un bogue avec awscli et il pourrait être corrigé avec les prochaines versions. C'est pourquoi, une bonne pratique consiste à mettre à niveau:

brew upgrade awscli

12
si vous avez un lien symbolique rompu, cela ne fonctionnera pas. il vous dira qu'awscli n'est pas installé et que vous finirez par devoir courir brew link --overwrite awscliet c'est ce qui a fonctionné pour moi. J'ai voté pour parce que c'était un début sur la bonne voie.
str8up7od

Si vous suivez les instructions de la page AWS CLI, cela ne fonctionnera pas docs.aws.amazon.com/cli/latest/userguide/install-macos.html
jcollum

1
Une note similaire pour ceux qui rencontrent un problème similaire avec eb, vous pouvez exécuter brew upgrade aws-elasticbeanstalk.
Sean Chon

Je n'ai pas d'aswcli, par exemple
Atombit

33

Vous devez avoir foiré le breuvage. Essayez de le réinstaller en utilisant: brew install awscli(suivi de brew link awsclisi nécessaire).


Cela n'a pas été le cas, également à cause de cette erreur:Error: awscli 1.14.60 is already installed
axel

16

Cette erreur se produit car votre environnement virtuel a rompu les liens symboliques. Voici une belle solution tirée de l' fix_virtualenvessentiel 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

Aussi, voici une question similaire: Références cassées dans Virtualenvs .


Incroyable, cela a résolu mon problème immédiatement
Our_Benefactors

Comment fait-on ça?
Yokhen

3
Résumé de la solution: 1) Supprimez tous les liens symboliques dans votre environnement virtuel en exécutant find your-virtual-env-directory -type l -delete2) Recréez les liens symboliques à l'intérieur de votre environnement virtuel en exécutantvirtualenv your-virtual-env-directory
alejandro

J'obtiens l'erreur OSError: Command /Users/defaultuser/D...o/venv/bin/python3.7 - setuptools pip wheel failed with error code -6lorsque j'exécute la commande $SYSTEM_VIRTUALENV "$ENV_PATH". Aucune idée de ce qu'est le code d'erreur "-6"
jerrymouse

Ne l'utilisez pas! Il a supprimé tous mes liens symboliques importants dans le répertoire personnel. et n'en a pas créé de nouveaux. Au lieu de cela, il a donné une ligne d'erreur 24:.: Argument de nom de fichier requis
Atombit

12

Après avoir lu le sujet, cela fonctionne pour moi:

  1. Désinstaller aws
$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws
  1. Réinstaller à nouveau
    $ brew reinstall awscli

4
Même problème, tout ce que j'ai fait était brew reinstall awscliet il a été réglé. Merci
Jordon Biondo

2

J'ai eu un problème similaire lors de l'installation de awscli avec homebrew sur mac. L'approche finale était donc de "brasser désinstaller python3" et de réinstaller awscli à nouveau.


2

Si vous avez déjà python ( python --version fonctionne. Sinon, installez-le avec brew, installez python ). Ça marche pour moi:

  1. Désinstaller aws

    $ sudo rm -rf /usr/local/aws
    $ sudo rm /usr/local/bin/aws
    
  2. Installez-le à nouveau

    $ 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

Je l'ai fait installer par curl, la manière habituelle

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

Puis il a cessé de fonctionner en se plaignant de ne pas trouver python2.7

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

donc je l'ai corrigé en suivant ces étapes (assurez-vous de ne pas le faire si vous l'avez installé brew):

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

Ensuite, je l'ai installé en utilisant brew:

$ brew upgrade
$ brew install awscli

2

Il est possible de déclencher cette erreur en rencontrant un problème dans votre virtualenv. Par exemple, j'avais un virtualenv de travail existant et j'ai couru brew install awscliet il a cassé mon virtualenv avec cette erreur. Si tel est le cas, la suppression et la recréation de votre virtualenv (de la même manière que vous l'avez créé à l'origine) devraient résoudre le problème. Ça l'a fait pour moi.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.