วิธีแก้ไขข้อผิดพลาด pip"สภาพแวดล้อมที่จัดการภายนอก"บน Linux
หากคุณทำงานกับ Python บ่อยครั้งและเพิ่งเปลี่ยนมาใช้ Ubuntu 23.04 หรือ Fedora เวอร์ชัน 38 มีโอกาสที่คุณจะเจอข้อผิดพลาด “สภาพแวดล้อมที่มีการจัดการภายนอก” เมื่อติดตั้งแพ็คเกจด้วยตัวจัดการแพ็คเกจ Python, pip
อาจเป็นสาเหตุของความหงุดหงิดที่ต้องเผชิญปัญหาที่ไม่ปรากฏในระบบปฏิบัติการรุ่นก่อนๆ เช่น Ubuntu และ Fedora การทำความเข้าใจต้นตอของปัญหานี้และการค้นหาวิธีการแก้ไขที่รวดเร็วจะเป็นกุญแจสำคัญในการแก้ไขปัญหาอย่างมีประสิทธิภาพ
เหตุใดจึงเกิดข้อผิดพลาด"สภาพแวดล้อมที่มีการจัดการภายนอก"
การทำซ้ำล่าสุดของการกระจาย Linux ทุกรายการได้นำข้อกำหนดเฉพาะที่ระบุไว้ใน PEP ซึ่งส่งผลให้เกิดการเปลี่ยนแปลงลักษณะการติดตั้งของแพ็คเกจ pip โดยไม่ได้ติดตั้งภายในขอบเขตส่วนกลางตามค่าเริ่มต้นอีกต่อไป
สิ่งนี้ถูกนำไปใช้ในความพยายามที่จะหลีกเลี่ยงความขัดแย้งระหว่างตัวจัดการแพ็คเกจของการแจกจ่ายและเครื่องมือการจัดการแพ็คเกจ Python คุณสามารถเรียนรู้รายละเอียดได้ใน เอกสารอย่างเป็นทางการของ PEP-668 หากคุณต้องการเปลี่ยนกลับหรือแทนที่กลไกนี้ คุณสามารถทำได้ 3 วิธี
ลบไฟล์ “จัดการภายนอก”
ในการแก้ไขปัญหาแพ็คเกจที่ได้รับการจัดการภายนอกในไลบรารี 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 มากมายที่เหมาะกับความต้องการของคุณ ซึ่งจะช่วยยกระดับประสบการณ์การพัฒนาของคุณ
เมื่อพยายามครั้งแรก การติดตั้งแพ็คเกจ OpenAI Python ประสบปัญหา อย่างไรก็ตาม เมื่อมีการสร้างและเปิดใช้งานสภาพแวดล้อมเสมือนจริง กระบวนการติดตั้งก็ดำเนินไปได้อย่างราบรื่นโดยไม่มีปัญหาใดๆ
ใช้ pipx เพื่อติดตั้งแพ็คเกจ Python
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 หรือภาษาอื่น ๆ ผ่านทางวิธีการเล่นเกม ซึ่งมอบประสบการณ์ที่ดื่มด่ำและน่าพึงพอใจโดยผสมผสานองค์ประกอบของการออกแบบเกมเข้ากับกระบวนการเรียนรู้