Contents

วิธีแก้ไขข้อผิดพลาด pip"สภาพแวดล้อมที่จัดการภายนอก"บน Linux

หากคุณทำงานกับ Python บ่อยครั้งและเพิ่งเปลี่ยนมาใช้ Ubuntu 23.04 หรือ Fedora เวอร์ชัน 38 มีโอกาสที่คุณจะเจอข้อผิดพลาด “สภาพแวดล้อมที่มีการจัดการภายนอก” เมื่อติดตั้งแพ็คเกจด้วยตัวจัดการแพ็คเกจ Python, pip

อาจเป็นสาเหตุของความหงุดหงิดที่ต้องเผชิญปัญหาที่ไม่ปรากฏในระบบปฏิบัติการรุ่นก่อนๆ เช่น Ubuntu และ Fedora การทำความเข้าใจต้นตอของปัญหานี้และการค้นหาวิธีการแก้ไขที่รวดเร็วจะเป็นกุญแจสำคัญในการแก้ไขปัญหาอย่างมีประสิทธิภาพ

เหตุใดจึงเกิดข้อผิดพลาด"สภาพแวดล้อมที่มีการจัดการภายนอก"

/th/images/pip-externally-managed-error.jpeg

การทำซ้ำล่าสุดของการกระจาย Linux ทุกรายการได้นำข้อกำหนดเฉพาะที่ระบุไว้ใน PEP ซึ่งส่งผลให้เกิดการเปลี่ยนแปลงลักษณะการติดตั้งของแพ็คเกจ pip โดยไม่ได้ติดตั้งภายในขอบเขตส่วนกลางตามค่าเริ่มต้นอีกต่อไป

สิ่งนี้ถูกนำไปใช้ในความพยายามที่จะหลีกเลี่ยงความขัดแย้งระหว่างตัวจัดการแพ็คเกจของการแจกจ่ายและเครื่องมือการจัดการแพ็คเกจ Python คุณสามารถเรียนรู้รายละเอียดได้ใน เอกสารอย่างเป็นทางการของ PEP-668 หากคุณต้องการเปลี่ยนกลับหรือแทนที่กลไกนี้ คุณสามารถทำได้ 3 วิธี

ลบไฟล์ “จัดการภายนอก”

/th/images/deleting-externally-managed-file.jpeg

ในการแก้ไขปัญหาแพ็คเกจที่ได้รับการจัดการภายนอกในไลบรารี Pip เราสามารถทำตามขั้นตอนที่ไม่ซับซ้อนได้โดยไปที่ไดเร็กทอรีที่ “/usr/lib/python3.xx” และลบไฟล์ “จัดการภายนอก” ภายในไดเร็กทอรีนั้น ขั้นตอนเฉพาะสำหรับการทำงานนี้ให้สำเร็จเกี่ยวข้องกับการดำเนินการคำสั่งต่อไปนี้:

 cd /usr/lib/python3.11
sudo rm EXTERNALLY-MANAGED 

เมื่อต้องการแก้ไขปัญหาและสร้างฟังก์ชันการทำงานที่ขาดหายไปอีกครั้ง ให้ทำตามขั้นตอนเหล่านี้:1. ใช้คำสั่ง’touch’เพื่อสร้างไฟล์การกำหนดค่าที่จำเป็นใหม่ ซึ่งสามารถทำได้โดยการพิมพ์ “touch/etc/systemd/system/multi-user.target.wants/sleep.override” ในเทอร์มินัลของคุณ2. ตรวจสอบว่าไฟล์ถูกสร้างขึ้นสำเร็จโดยการตรวจสอบการมีอยู่ของไฟล์โดยใช้คำสั่ง “ls-l/etc/systemd/system/multi-user.target.wants/” ตอนนี้ไฟล์ควรปรากฏเป็นไฟล์ปกติพร้อมสิทธิ์ในการอ่านสำหรับเจ้าของและกลุ่ม

 sudo touch EXTERNALLY-MANAGED 

ตอนนี้คุณควรจะพบกับกระบวนการติดตั้งที่ราบรื่นเมื่อใช้ pip หรือ pip3

ใช้สภาพแวดล้อมเสมือนเพื่อติดตั้งแพ็คเกจ pip

กลยุทธ์ทางเลือกอื่นเกี่ยวข้องกับการใช้สภาพแวดล้อมเสมือนเป็นวิธีที่มีประสิทธิภาพในการแบ่งแยกการพึ่งพาการเขียนโปรแกรมเฉพาะจากระบบปฏิบัติการพื้นฐานในขณะเดียวกันก็อำนวยความสะดวกในการจัดระเบียบโครงการอย่างเป็นระเบียบไปพร้อมๆ กัน

ในการสร้างสภาพแวดล้อมเสมือนจริงและติดตั้งแพ็คเกจโดยใช้ pip โปรดทำตามขั้นตอนเหล่านี้:

⭐ ขั้นแรก สร้างสภาพแวดล้อมเสมือนด้วย:

 python3 -m venv venv 

⭐ แหล่งที่มาของไฟล์เปิดใช้งานภายในไดเร็กทอรี bin โดยใช้คำสั่ง source:

 source venv/bin/activate 

การอัปเดตเชลล์พรอมต์ของคุณด้วยชื่อสภาพแวดล้อมเสมือนช่วยให้คุณสามารถติดตั้งแพ็คเกจ Python มากมายที่เหมาะกับความต้องการของคุณ ซึ่งจะช่วยยกระดับประสบการณ์การพัฒนาของคุณ

/th/images/using-venv-solves-the-externally-managed-error.jpeg

เมื่อพยายามครั้งแรก การติดตั้งแพ็คเกจ OpenAI Python ประสบปัญหา อย่างไรก็ตาม เมื่อมีการสร้างและเปิดใช้งานสภาพแวดล้อมเสมือนจริง กระบวนการติดตั้งก็ดำเนินไปได้อย่างราบรื่นโดยไม่มีปัญหาใดๆ

ใช้ pipx เพื่อติดตั้งแพ็คเกจ Python

/th/images/installing-packages-with-pix.jpeg

PipX ทำหน้าที่เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการปรับใช้ไลบรารี Python ภายในการตั้งค่าเสมือนจริงหรือแบบแยกส่วน ปรับปรุงกระบวนการต่างๆ เช่น การสร้างสภาพแวดล้อมเสมือนจริงที่ปรับให้เหมาะกับแต่ละแพ็คเกจ และการสร้างการเชื่อมต่อเชิงสัญลักษณ์ระหว่างแพ็คเกจเหล่านี้และไฟล์ไบนารีที่เกี่ยวข้องซึ่งอยู่ภายใน.local/ของผู้ใช้ ไดเร็กทอรีถัง ซึ่งช่วยให้ผู้ใช้สามารถเข้าถึงและใช้แพ็คเกจใดๆ ที่ติดตั้งผ่าน PipX ได้โดยตรงจากอินเทอร์เฟซบรรทัดคำสั่งของตนตลอดเวลา

การใช้ pipx สำหรับการติดตั้งแพ็คเกจนำเสนอวิธีแก้ไขปัญหาข้อผิดพลาด"สภาพแวดล้อมที่มีการจัดการภายนอก"โดยการติดตั้งแพ็คเกจภายในสภาพแวดล้อมเสมือน หากต้องการใช้ pipx ให้เริ่มต้นด้วยการติดตั้งผ่านตัวจัดการแพ็คเกจเริ่มต้นของระบบปฏิบัติการของคุณ

บนอนุพันธ์ของ Ubuntu/Debian:

 sudo apt-get install pipx 

บนระบบที่ใช้ Arch:

 sudo pacman -S pipx 

บน Fedora/CentOS/RHEL:

 sudo dnf install pipx 

เมื่อติดตั้ง pipX เราอาจจะใช้งานมันในลักษณะที่คล้ายคลึงกับการใช้ pip สำหรับการติดตั้งแพ็คเกจ ตัวอย่างเช่น พิจารณาคำสั่งที่มีภาพประกอบต่อไปนี้:

 pipx install openai 

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ pipx ขอแนะนำให้อ่านหน้าคู่มือโดยใช้คำสั่ง"man"

ตอนนี้คุณรู้วิธีแก้ไขข้อผิดพลาด"จัดการภายนอก"แล้ว

หลังจากแก้ไขปัญหาที่เกี่ยวข้องกับสภาพแวดล้อมที่ได้รับการจัดการจากภายนอกได้สำเร็จ เราจึงสามารถกลับมาทำงานในโปรเจ็กต์ของตนต่อหรือเข้าร่วมเซสชั่นฝึกซ้อมที่ครอบคลุมมากขึ้นที่เกี่ยวข้องกับการใช้ Python เป็นภาษาการเขียนโปรแกรมหลักได้ สำหรับผู้ที่มีวัตถุประสงค์ที่กว้างขึ้นซึ่งครอบคลุมทั้งการพัฒนาส่วนบุคคลและความเพลิดเพลิน อาจคุ้มค่าที่จะสำรวจแนวทางอื่นในการได้รับความเชี่ยวชาญใน Python หรือภาษาอื่น ๆ ผ่านทางวิธีการเล่นเกม ซึ่งมอบประสบการณ์ที่ดื่มด่ำและน่าพึงพอใจโดยผสมผสานองค์ประกอบของการออกแบบเกมเข้ากับกระบวนการเรียนรู้