How to resolve "dyld: Library not loaded: @executable_path.." error

PythonVirtualenvDyldExecutable Path

Python Problem Overview


I was trying to check the AWS-CLI version on my MAC OS X. And the below error hit back:

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

Any relevant inputs on how to fix this would be highly appreciated.

Python Solutions


Solution 1 - Python

It is a bug with awscli and it might be fixed with the next versions. That's why, a best practices is to upgrade :

brew upgrade awscli

Solution 2 - Python

You must have messed up with the brew. Try reinstalling it using: brew install awscli (followed by brew link awscli if needed).

Solution 3 - Python

After read the topic, It works for me:

  1. Uninstall aws
$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws
  1. Reinstall it again
    $ brew reinstall awscli

Solution 4 - Python

This error occurs because your virtual environment has broken symlinks. Here is a nice solution taken from tevino's fix_virtualenv gist:

#!/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

Also, here is a similar question: https://stackoverflow.com/questions/23233252/broken-references-in-virtualenvs.

Solution 5 - Python

I had similar issue while installing awscli with homebrew on mac. So final approach was "brew uninstall python3" and reinstall awscli again.

Solution 6 - Python

If you have already python (python --version works. If not install it with brew install python). It works for me:

  1. Uninstall aws

     $ sudo rm -rf /usr/local/aws
     $ sudo rm /usr/local/bin/aws
    
  2. Install it again

     $ 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
    

Solution 7 - Python

I had it installed through curl, the regular way

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

Then it stopped working complaining about not finding python2.7

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

so I fixed it by following these steps (make sure you don't do this if you installed it through brew):

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

Then I installed it using brew:

$ brew upgrade
$ brew install awscli

Solution 8 - Python

It's possible to trigger this error by having a problem in your virtualenv. For example, I had an existing working virtualenv and ran brew install awscli and it broke my virtualenv with this error. If that's the case, deleting and recreating your virtualenv (the same way you originally created it) should resolve the problem. It did for me.

Solution 9 - Python

I tried all the above solutions and nothing worked then I tried this from https://docs.aws.amazon.com/cli/v1/userguide/install-macos.html and it worked :
sudo /usr/local/bin/python3.7 awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Solution 10 - Python

This work for me.

brew upgrade
brew uninstall aws-sam-cli
brew install aws-sam-cli

Solution 11 - Python

If:

  • you reinstalled/relinked awscli
  • and are experiencing this issue while you work on a Python Poetry virtual env

Then just delete the env like:

# MacOS paths
rm -rf /Users/<user>/Library/Caches/pypoetry/virtualenvs/<your_virtual_env_name>

To get the name and path of the env you can do:

poetry shell

There will be an error similar to this:

 EnvCommandError

  Command ['/Users/<user>/Library/Caches/pypoetry/virtualenvs/<your_virtual_env_name>/bin/python', '-W', 'ignore', '-'] ...

Copy the env path, do rm -rf <path> and after that do poetry shell

Solution 12 - Python

If you installed AWS CLI via curl according to AWS' official instructions at https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html, simply rerunning these commands without any prior deletions solved it for me:

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg ./AWSCLIV2.pkg -target /

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionManogna MujjeView Question on Stackoverflow
Solution 1 - PythonAbdennour TOUMIView Answer on Stackoverflow
Solution 2 - PythonNabinView Answer on Stackoverflow
Solution 3 - PythonGleb BelyaevView Answer on Stackoverflow
Solution 4 - PythonAndrii RieznikView Answer on Stackoverflow
Solution 5 - PythonZaurView Answer on Stackoverflow
Solution 6 - PythonAlona HoncharovaView Answer on Stackoverflow
Solution 7 - PythonHamdi Al-HajView Answer on Stackoverflow
Solution 8 - PythonWillView Answer on Stackoverflow
Solution 9 - PythonmathéoView Answer on Stackoverflow
Solution 10 - PythonmsenatoriView Answer on Stackoverflow
Solution 11 - PythonBartek SkwiraView Answer on Stackoverflow
Solution 12 - PythonAndréView Answer on Stackoverflow