Cách giải quyết lỗi “dyld: Library not load: @executable_path ..”


88

Tôi đang cố gắng kiểm tra phiên bản AWS-CLI trên MAC OS X. Và lỗi bên dưới đã xảy ra:

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

Bất kỳ đầu vào liên quan nào về cách khắc phục điều này sẽ được đánh giá cao.


11
Lỗi này có thể xảy ra khi bạn brew install some_packageở trong virtualenv. Tôi nghĩ những gì xảy ra là bia thực hiện công việc của nó bên trong vm. Để khắc phục, hãy hủy kích hoạt virtualenv, rm -rfthư mục môi trường ảo của bạn. Sau đó, xây dựng lại nó từ đầu. Sau đó, đưa ra một bình luận lớn nói rằng đừng tạo ra những thứ cài đặt bên trong môi trường ảo.
Eric Leschinski 25/09/19

Nếu bạn không muốn xây dựng lại nó từ đầu, hãy làm theo liên kết này Nó đã làm việc cho tôi
PAC

Câu trả lời:


78

Đó là một lỗi với awscli và nó có thể được sửa trong các phiên bản tiếp theo. Đó là lý do tại sao, phương pháp hay nhất là nâng cấp:

brew upgrade awscli

12
nếu bạn có một liên kết tượng trưng bị hỏng, nó sẽ không hoạt động. nó sẽ cho bạn biết rằng awscli chưa được cài đặt và bạn sẽ phải chạy brew link --overwrite awsclivà đó là những gì đã làm việc cho tôi. Tôi ủng hộ vì đó là một khởi đầu đi đúng hướng.
str8up7od

Nếu bạn làm theo hướng dẫn trên trang AWS CLI, điều này sẽ không hoạt động docs.aws.amazon.com/cli/latest/userguide/install-macos.html
jcollum

1
Một lưu ý tương tự cho những người gặp sự cố tương tự với eb, bạn có thể chạy brew upgrade aws-elasticbeanstalk.
Sean Chon

Tôi không có aswcli, chẳng hạn
Atombit

33

Bạn chắc hẳn đã nhầm lẫn với việc pha rượu. Hãy thử cài đặt lại nó bằng cách sử dụng: brew install awscli(tiếp theo brew link awsclinếu cần).


Đây không, cũng do lỗi này:Error: awscli 1.14.60 is already installed
Axel

17

Lỗi này xảy ra do môi trường ảo của bạn bị hỏng các liên kết tượng trưng. Đây là một giải pháp hay được lấy từ ý chính của tevinofix_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

Ngoài ra, đây là một câu hỏi tương tự: Tham chiếu bị hỏng trong Virtualenvs .


Thật tuyệt vời, sự cố này đã khắc phục sự cố của tôi ngay lập tức
Our_Benefactors, 25/09/19

Làm thế nào để một người chạy điều này?
Yokhen

3
Tóm tắt giải pháp: 1) Xóa tất cả các liên kết tượng trưng bên trong môi trường ảo của bạn bằng cách chạy find your-virtual-env-directory -type l -delete2) Tạo lại các liên kết tượng trưng bên trong môi trường ảo của bạn bằng cách chạyvirtualenv your-virtual-env-directory
alejandro

Tôi gặp lỗi OSError: Command /Users/defaultuser/D...o/venv/bin/python3.7 - setuptools pip wheel failed with error code -6khi chạy lệnh $SYSTEM_VIRTUALENV "$ENV_PATH". Không biết mã lỗi "-6" là gì
jerrymouse

Đừng sử dụng nó! Nó đã xóa tất cả các liên kết tượng trưng quan trọng của tôi trong home dir. và không tạo bất kỳ cái mới nào. Thay vào đó, nó đưa ra một dòng lỗi 24:.: Cần có đối số tên tệp
Atombit

12

Sau khi đọc chủ đề, nó hoạt động đối với tôi:

  1. Gỡ cài đặt aws
$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws
  1. Cài đặt lại nó một lần nữa
    $ brew reinstall awscli

4
Cùng một vấn đề, tất cả những gì tôi đã làm là brew reinstall awsclivà nó đã được khắc phục. Cảm ơn
Jordon Biondo

2

Tôi đã gặp sự cố tương tự khi cài đặt awscli với homebrew trên mac. Vì vậy, cách tiếp cận cuối cùng là "brew uninstall python3" và cài đặt lại awscli một lần nữa.


2

Nếu bạn đã có python ( python - phiên bản hoạt động. Nếu không, hãy cài đặt nó với brew, hãy cài đặt python ). Nó hoạt động cho tôi:

  1. Gỡ cài đặt aws

    $ sudo rm -rf /usr/local/aws
    $ sudo rm /usr/local/bin/aws
    
  2. Cài đặt lại

    $ 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

Tôi đã cài đặt nó thông qua cuộn tròn, một cách thông thường

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

Sau đó, nó ngừng hoạt động và phàn nàn về việc không tìm thấy python2.7

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

vì vậy tôi đã sửa nó bằng cách làm theo các bước sau (đảm bảo rằng bạn không làm điều này nếu bạn đã cài đặt nó thông qua brew):

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

Sau đó, tôi đã cài đặt nó bằng cách sử dụng brew:

$ brew upgrade
$ brew install awscli

2

Có thể gây ra lỗi này do gặp sự cố trong virtualenv của bạn. Ví dụ: tôi có một virtualenv hiện đang hoạt động và đã chạy brew install awsclivà nó đã phá vỡ virtualenv của tôi với lỗi này. Nếu đúng như vậy, việc xóa và tạo lại virtualenv của bạn (giống như cách bạn đã tạo ban đầu) sẽ giải quyết được sự cố. Nó đã làm cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.