Як виправити помилку "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

Будемо вдячні за будь-які відповідні вклади щодо того, як це виправити.


11
Ця помилка може статися, brew install some_packageколи ви знаходитесь всередині virtualenv. Я думаю, що те, що трапляється, варить свою роботу всередині vm. Щоб виправити це, деактивуйте з вашого virtualenv, rm -rfпапки вашого віртуального середовища. Потім відновіть його з нуля. Потім додайте гучний коментар, який говорить, що не заварюйте інсталяційні матеріали у віртуальному середовищі.
Ерік Лещинський

Якщо ви не хочете відновлювати його з нуля, перейдіть за цим посиланням Це спрацювало для мене
PAC

Відповіді:


78

Це помилка з awscli, і вона може бути виправлена ​​в наступних версіях. Ось чому найкращою практикою є оновлення:

brew upgrade awscli

12
якщо у вас порушено символічне посилання, це не буде працювати. він скаже вам, що awscli не встановлений, і вам в кінцевому підсумку доведеться запустити, brew link --overwrite awscliі це те, що мені вдалося . Я проголосував за те, що це був старт правильним шляхом.
str8up7od

Якщо ви будете слідувати інструкціям на сторінці AWS CLI, це не спрацює 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".
Поняття

Не використовуйте його! Це видалило всі мої важливі символічні посилання в домашній директорії. і не створив нових. Натомість він дав рядок помилки 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. Отже, остаточним підходом було «заварювати видалення python3» та знову перевстановлювати awscli.


2

Якщо у вас вже є python ( python --version працює. Якщо не встановити його за допомогою brew, встановіть 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 "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 (так само, як ви його спочатку створили) має вирішити проблему. Це зробило для мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.