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.

Manogna Mujje
la source
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
Abdennour TOUMI
la source
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).

Nabin
la source
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 .

Sant
la source
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
Gleb Belyaev
la source
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.

Zaur
la source
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
    
Alona Honcharova
la source
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
Hamdi Al-Haj
la source
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.

Will Cain
la source