Как устранить ошибку «dyld: библиотека не загружена: @executable_path ..»

88

Я пытался проверить версию AWS-CLI на своей MAC OS X. И ошибка ниже:

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

Мы будем очень признательны за любые соответствующие комментарии о том, как это исправить.

Manogna Mujje
источник
11
Эта ошибка может возникнуть, brew install some_packageкогда вы находитесь внутри virtualenv. Я думаю, что происходит то, что brew выполняет свою работу внутри виртуальной машины. Чтобы исправить это, отключите rm -rfвиртуальную среду от virtualenv . Затем восстановите его с нуля. Затем сделайте громкий комментарий, в котором говорится, что не варите установку в виртуальной среде.
Эрик Лещински
Если вы не хотите перестраивать его с нуля, перейдите по этой ссылке У меня сработало
PAC

Ответы:

78

Это ошибка awscli, которая может быть исправлена ​​в следующих версиях. Вот почему рекомендуется обновить:

brew upgrade awscli
Абденнур Туми
источник
12
если у вас неработающая символическая ссылка, это не сработает. он сообщит вам, что awscli не установлен, и вам придется запускать его, brew link --overwrite awscliи это сработало для меня. Я проголосовал за, потому что это было началом правильного пути.
str8up7od
Если следовать инструкциям на странице интерфейса командной строки AWS, это не сработает docs.aws.amazon.com/cli/latest/userguide/install-macos.html
jcollum
1
Аналогичное примечание для тех, кто сталкивается с подобной проблемой eb, вы можете запустить brew upgrade aws-elasticbeanstalk.
Шон Чон,
У меня нет aswcli, например
Atombit
33

Вы, должно быть, испортили варево. Попробуйте переустановить его, используя: brew install awscli(затем brew link awscliпри необходимости).

Набин
источник
Этого не произошло, также из-за этой ошибки:Error: awscli 1.14.60 is already installed
axel
16

Эта ошибка возникает из-за того, что в вашей виртуальной среде повреждены символические ссылки. Вот хорошее решение принято из tevino по fix_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

Также, вот аналогичный вопрос: Неработающие ссылки в Virtualenvs .

Сант
источник
Удивительно, это сразу
устранило
Как это запустить?
Йохен
3
Краткое изложение решения: 1) Удалите все символические ссылки внутри виртуальной среды, запустив find your-virtual-env-directory -type l -delete2) Воссоздайте символические ссылки внутри виртуальной среды, запустивvirtualenv your-virtual-env-directory
Алехандро,
Я получаю сообщение об ошибке OSError: Command /Users/defaultuser/D...o/venv/bin/python3.7 - setuptools pip wheel failed with error code -6при запуске команды $SYSTEM_VIRTUALENV "$ENV_PATH". Не знаю, что такое код ошибки «-6»
jerrymouse
Не используйте это! Он удалил все мои важные символические ссылки в домашнем каталоге. и не создавал новых. Вместо этого он выдал строку с ошибкой 24:.: Имя файла требуется аргумент
Atombit
12

После прочтения темы у меня работает:

  1. Удалить aws
$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws
  1. Переустановите его снова
    $ brew reinstall awscli
Глеб Беляев
источник
4
Та же проблема, все, что я сделал, brew reinstall awscliбыло исправлено. Спасибо
Джордон Биондо
2

У меня была аналогичная проблема при установке awscli с помощью homebrew на Mac. Итак, последний подход был «brew uninstall python3» и снова переустановить awscli.

Заур
источник
2

Если у вас уже есть python ( работает python --version . Если нет, установите его с помощью brew install python ). Меня устраивает:

  1. Удалить aws

    $ sudo rm -rf /usr/local/aws
    $ sudo rm /usr/local/bin/aws
    
  2. Установите его снова

    $ 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

Установил через curl, штатным способом

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

Потом он перестал работать с жалобами на то, что не нашел python2.7

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

поэтому я исправил это, выполнив следующие действия (убедитесь, что вы этого не делаете, если вы установили его через brew):

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

Затем я установил его с помощью brew:

$ brew upgrade
$ brew install awscli
Хамди Аль-Хадж
источник
2

Эта ошибка может быть вызвана проблемой в вашем файле virtualenv. Например, у меня был существующий рабочий virtualenv, и я запустил brew install awscliего, и он сломал мой virtualenv с этой ошибкой. Если это так, удаление и воссоздание вашего virtualenv (так же, как вы его изначально создавали) должно решить проблему. Это сработало для меня.

Уилл Каин
источник