Cómo resolver el error "dyld: biblioteca no cargada: @executable_path ..."

88

Estaba tratando de verificar la versión de AWS-CLI en mi MAC OS X. Y el siguiente error respondió:

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

Cualquier aportación relevante sobre cómo solucionar este problema será muy apreciada.

Manogna Mujje
fuente
11
Este error puede ocurrir cuando estás brew install some_packagedentro de un virtualenv. Creo que lo que sucede es que brew hace su trabajo dentro de la máquina virtual. Para solucionarlo, desactive de su virtualenv, rm -rfla carpeta de su entorno virtual. Luego reconstrúyelo desde cero. Luego, haga un comentario fuerte que diga que no prepare cosas de instalación dentro de un entorno virtual.
Eric Leschinski
Si no desea reconstruirlo desde cero, siga este enlace Me funcionó
PAC

Respuestas:

78

Es un error con awscli y podría corregirse con las próximas versiones. Por eso, una de las mejores prácticas es actualizar:

brew upgrade awscli
Abdennour TOUMI
fuente
12
si tiene un enlace simbólico roto, esto no funcionará. te dirá que awscli no está instalado y terminarás teniendo que ejecutarlo brew link --overwrite awscliy eso es lo que funcionó para mí. Voté a favor porque era un comienzo en el camino correcto.
str8up7od
Si sigue las instrucciones de la página de la AWS CLI, esto no funcionará. Docs.aws.amazon.com/cli/latest/userguide/install-macos.html
jcollum
1
Una nota similar para aquellos que se encuentran con un problema similar eb, puede ejecutar brew upgrade aws-elasticbeanstalk.
Sean Chon
No tengo aswcli, por ejemplo
Atombit
33

Debes haber estropeado la infusión. Intente reinstalarlo usando: brew install awscli(seguido de brew link awsclisi es necesario).

Nabin
fuente
Esto no sucedió, también debido a este error:Error: awscli 1.14.60 is already installed
axel
16

Este error se produce porque su entorno virtual tiene enlaces simbólicos rotos. Aquí hay una buena solución tomada de la fix_virtualenvesencia 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

Además, aquí hay una pregunta similar: referencias rotas en Virtualenvs .

Sant
fuente
Increíble, esto solucionó mi problema de inmediato
Our_Benefactors
¿Cómo se ejecuta esto?
Yokhen
3
Resumen de la solución: 1) Elimine todos los enlaces simbólicos dentro de su entorno virtual ejecutando find your-virtual-env-directory -type l -delete2) Vuelva a crear los enlaces simbólicos dentro de su entorno virtual ejecutandovirtualenv your-virtual-env-directory
alejandro
Recibo el error OSError: Command /Users/defaultuser/D...o/venv/bin/python3.7 - setuptools pip wheel failed with error code -6cuando ejecuto el comando $SYSTEM_VIRTUALENV "$ENV_PATH". No tengo idea de qué es el código de error "-6"
Jerrymouse
¡No lo uses! Eliminó todos mis enlaces simbólicos importantes en el directorio principal. y no creó ninguna nueva. En su lugar, dio una línea de error 24:.: Argumento de nombre de archivo requerido
Atombit
12

Después de leer el tema, me funciona:

  1. Desinstalar aws
$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws
  1. Reinstalarlo de nuevo
    $ brew reinstall awscli
Gleb Belyaev
fuente
4
El mismo problema, todo lo que hice fue brew reinstall awscliy se solucionó. Gracias
Jordon Biondo
2

Tuve un problema similar al instalar awscli con homebrew en mac. Así que el enfoque final fue "preparar, desinstalar python3" y reinstalar awscli nuevamente.

Zaur
fuente
2

Si ya tiene python ( python --version funciona. Si no lo instala con brew, instale python ) Esto funciona para mi:

  1. Desinstalar aws

    $ sudo rm -rf /usr/local/aws
    $ sudo rm /usr/local/bin/aws
    
  2. Instalarlo de nuevo

    $ 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
fuente
2

Lo hice instalar a través de curl, de la forma habitual.

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

Luego dejó de funcionar quejándose de no 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

así que lo arreglé siguiendo estos pasos (asegúrese de no hacer esto si lo instaló brew):

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

Luego lo instalé usando brew:

$ brew upgrade
$ brew install awscli
Hamdi Al-Haj
fuente
2

Es posible desencadenar este error al tener un problema en su virtualenv. Por ejemplo, tenía un virtualenv de trabajo existente y ejecuté brew install awscliy rompió mi virtualenv con este error. Si ese es el caso, eliminar y volver a crear su virtualenv (de la misma manera que lo creó originalmente) debería resolver el problema. Lo hizo por mí.

Will Cain
fuente