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.


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

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).


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 .


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

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.


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
    

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

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í.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.