Bagaimana mengatasi kesalahan “dyld: Library not loaded: @executable_path ..”


98

Saya mencoba untuk memeriksa versi AWS-CLI di MAC OS X saya. Dan kesalahan di bawah muncul kembali:

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

Setiap masukan yang relevan tentang cara memperbaikinya akan sangat dihargai.


11
Kesalahan ini dapat terjadi brew install some_packageketika Anda berada di dalam virtualenv. Saya pikir yang terjadi adalah brew melakukan tugasnya di dalam vm. Untuk memperbaikinya, nonaktifkan dari virtualenv rm -rfAnda , folder lingkungan virtual Anda. Kemudian bangun kembali dari awal. Kemudian berikan komentar keras yang mengatakan jangan buat instal apa pun di dalam lingkungan virtual.
Eric Leschinski

Jika Anda tidak ingin membangunnya kembali dari awal, ikuti tautan ini Berhasil untuk saya
PAC

Jawaban:


79

Ini adalah bug dengan awscli dan mungkin diperbaiki dengan versi berikutnya. Itulah mengapa, praktik terbaiknya adalah meningkatkan:

brew upgrade awscli

12
jika Anda memiliki symlink yang rusak, ini tidak akan berfungsi. itu akan memberi tahu Anda bahwa awscli tidak diinstal dan Anda akhirnya harus menjalankan brew link --overwrite awsclidan itulah yang berhasil untuk saya. Saya mendapat suara positif karena itu adalah awal dari jalur yang benar.
str8up7od

Jika Anda mengikuti petunjuk di halaman AWS CLI, ini tidak akan berfungsi docs.aws.amazon.com/cli/latest/userguide/install-macos.html
jcollum

1
Catatan serupa untuk mereka yang mengalami masalah serupa dengan eb, Anda dapat menjalankan brew upgrade aws-elasticbeanstalk.
Sean Chon

1
Saya tidak memiliki aswcli, misalnya
Atombit

saya mendapatkan kesalahan ini dan tanpa terhubung ke aws-cli. saya menjalankan beberapa virtualenv di laptop saya, dan python3 saya baru-baru ini ditingkatkan dari 3,7 menjadi 3,9
Rohit Chatterjee

33

Anda pasti mengacaukan minumannya. Coba instal ulang menggunakan: brew install awscli(diikuti brew link awsclijika perlu).


Ini tidak terjadi, juga karena kesalahan ini:Error: awscli 1.14.60 is already installed
axel

17

Kesalahan ini terjadi karena lingkungan virtual Anda telah merusak symlink. Berikut adalah solusi bagus yang diambil dari inti 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

Juga, berikut adalah pertanyaan serupa: Referensi rusak di Virtualenvs .


Luar biasa, ini segera memperbaiki masalah saya
Our_Benefactors

Bagaimana seseorang menjalankan ini?
Yokhen

3
Ringkasan solusi: 1) Hapus semua symlink di dalam lingkungan virtual Anda dengan menjalankan find your-virtual-env-directory -type l -delete2) Buat kembali symlink di dalam lingkungan virtual Anda dengan menjalankanvirtualenv your-virtual-env-directory
alejandro

Saya mendapatkan kesalahan OSError: Command /Users/defaultuser/D...o/venv/bin/python3.7 - setuptools pip wheel failed with error code -6saat menjalankan perintah $SYSTEM_VIRTUALENV "$ENV_PATH". Tidak tahu apa itu kode kesalahan "-6"
jerrymouse

Jangan gunakan itu! Itu menghapus semua symlink penting saya di direktori home. dan tidak membuat yang baru. Sebaliknya itu memberikan baris kesalahan 24:.: Argumen nama file diperlukan
Atombit

14

Setelah membaca topiknya, Ini berhasil untuk saya:

  1. Copot pemasangan aws
$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws
  1. Instal ulang lagi
    $ brew reinstall awscli

5
Masalah yang sama, yang saya lakukan hanyalah brew reinstall awsclidan itu diperbaiki. Terima kasih
Jordon Biondo

2

Saya mengalami masalah serupa saat menginstal awscli dengan homebrew di mac. Jadi pendekatan terakhir adalah "buat uninstall python3" dan instal ulang awscli lagi.


2

Jika Anda sudah memiliki python ( python --version berfungsi. Jika tidak menginstalnya dengan brew install python ). Ini bekerja untuk saya:

  1. Copot pemasangan aws

    $ sudo rm -rf /usr/local/aws
    $ sudo rm /usr/local/bin/aws
    
  2. Pasang lagi

    $ 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

Saya memasangnya melalui curl, dengan cara biasa

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

Kemudian berhenti bekerja mengeluh karena tidak menemukan python2.7

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

jadi saya memperbaikinya dengan mengikuti langkah-langkah ini (pastikan Anda tidak melakukan ini jika Anda menginstalnya melalui brew):

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

Kemudian saya menginstalnya menggunakan brew:

$ brew upgrade
$ brew install awscli

2

Ada kemungkinan untuk memicu kesalahan ini dengan mengalami masalah di virtualenv Anda. Misalnya, saya memiliki virtualenv yang berfungsi dan menjalankan brew install awsclidan itu merusak virtualenv saya dengan kesalahan ini. Jika itu masalahnya, menghapus dan membuat ulang virtualenv Anda (dengan cara yang sama Anda membuatnya) akan menyelesaikan masalah. Itu untuk saya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.