วิธีแก้ไขข้อผิดพลาด“ dyld: Library not loaded: @executable_path .. ”


99

ฉันพยายามตรวจสอบเวอร์ชัน 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โฟลเดอร์สภาพแวดล้อมเสมือนของคุณ จากนั้นสร้างใหม่ตั้งแต่ต้น จากนั้นแสดงความคิดเห็นดัง ๆ ว่าอย่าสร้างสิ่งที่ติดตั้งภายในสภาพแวดล้อมเสมือนจริง
Eric Leschinski

หากคุณไม่ต้องการสร้างใหม่ตั้งแต่ต้นให้ไปที่ลิงค์นี้มันใช้ได้กับฉัน
PAC

คำตอบ:


79

เป็นข้อบกพร่องของ awscli และอาจได้รับการแก้ไขในเวอร์ชันถัดไป ด้วยเหตุนี้แนวทางปฏิบัติที่ดีที่สุดคือการอัปเกรด:

brew upgrade awscli

12
หากคุณมี symlink เสียสิ่งนี้จะไม่ทำงาน มันจะบอกคุณว่าไม่ได้ติดตั้ง 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
Sean Chon

1
ฉันไม่มี aswcli เช่น
Atombit

ฉันได้รับข้อผิดพลาดนี้และไม่มีการเชื่อมต่อกับ aws-cli ฉันใช้งาน Virtualenv หลายตัวบนแล็ปท็อปของฉันและ python3 ของฉันเพิ่งอัปเกรดจาก 3.7 เป็น 3.9
Rohit Chatterjee

33

คุณต้องยุ่งกับการชง ลองติดตั้งใหม่โดยใช้: brew install awscli(ตามด้วยbrew link awscliถ้าจำเป็น)


สิ่งนี้ไม่ได้เกิดจากข้อผิดพลาดนี้ด้วย:Error: awscli 1.14.60 is already installed
axel

18

ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากสภาพแวดล้อมเสมือนของคุณมีลิงก์สัญลักษณ์เสีย นี่คือทางออกที่ดีที่นำมาจากส่วนสำคัญของ 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

นอกจากนี้ที่นี่เป็นคำถามที่คล้ายกัน: อ้างอิง Broken ใน Virtualenvs


น่าอัศจรรย์สิ่งนี้แก้ไขปัญหาของฉันได้ทันที
Our_Benefactors

หนึ่งเรียกใช้สิ่งนี้อย่างไร?
Yokhen

3
สรุปวิธีแก้ปัญหา: 1) ลบ symlink ทั้งหมดภายในสภาพแวดล้อมเสมือนของคุณโดยการเรียกใช้find your-virtual-env-directory -type l -delete2) สร้าง symlinks ใหม่ภายในสภาพแวดล้อมเสมือนของคุณโดยการเรียกใช้virtualenv your-virtual-env-directory
alejandro

ฉันได้รับข้อผิดพลาดเมื่อฉันเรียกใช้คำสั่งOSError: Command /Users/defaultuser/D...o/venv/bin/python3.7 - setuptools pip wheel failed with error code -6 $SYSTEM_VIRTUALENV "$ENV_PATH"ไม่รู้ว่ารหัสข้อผิดพลาด "-6" คืออะไร
jerrymouse

อย่าใช้มัน! มันลบ symlink ที่สำคัญทั้งหมดของฉันใน home dir และไม่ได้สร้างขึ้นใหม่ แต่ให้ข้อผิดพลาดบรรทัด 24:.: filename อาร์กิวเมนต์จำเป็น
Atombit

14

หลังจากอ่านหัวข้อแล้วมันใช้ได้กับฉัน:

  1. ถอนการติดตั้ง aws
$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws
  1. ติดตั้งใหม่อีกครั้ง
    $ brew reinstall awscli

5
ปัญหาเดียวกันทั้งหมดที่ฉันทำbrew reinstall awscliและได้รับการแก้ไขแล้ว ขอบคุณ
Jordon Biondo

2

ฉันมีปัญหาคล้ายกันขณะติดตั้ง awscli ด้วย homebrew บน mac วิธีสุดท้ายคือ "ชงถอนการติดตั้ง 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 "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 upgrade
$ brew install awscli

2

เป็นไปได้ที่จะทำให้เกิดข้อผิดพลาดนี้โดยมีปัญหาใน Virtualenv ของคุณ ตัวอย่างเช่นฉันมี Virtualenv ที่ใช้งานได้อยู่และวิ่งไปbrew install awscliและมันก็ทำลายความสามารถของฉันด้วยข้อผิดพลาดนี้ หากเป็นเช่นนั้นการลบและสร้าง Virtualenv ของคุณใหม่ (แบบเดียวกับที่คุณสร้างขึ้นในตอนแรก) จะช่วยแก้ปัญหาได้ มันทำเพื่อฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.