pip / python: แพ็คเกจไซต์ปกติไม่สามารถเขียนได้


11

ฉันมี Macbook ใหม่ - ผู้ใช้ติดตั้งแล้วฉันติดตั้งผู้ใช้ใหม่ (ของฉัน) ได้รับสิทธิ์ผู้ดูแลระบบและลบเก่า ฉันใช้ระบบปฏิบัติการ Catalina

ตั้งแต่การติดตั้งฉันมีปัญหาการอนุญาตหลายอย่าง VSCode ไม่สามารถหา Jupyter โน๊ตบุ๊ค, ติดตั้งแพคเกจpip~/Library/Python/3.7/site-packages

เมื่อฉันทำฉันได้รับwhich python3 usr/bin/python3เมื่อผมทำpip3 install <package>ผมจะได้รับ: แล้วมันบอกว่ามันได้รับการติดตั้งไว้แล้วแม้ว่าฉันไม่สามารถเข้าถึงได้เมื่อฉันทำDefaulting to user installation because normal site-packages is not writeableimport <package>

เห็นได้ชัดว่านี่เป็นปัญหาสิทธิ์pipไม่สามารถติดตั้งกับหลาม "ฐาน" และพวกเขาpythonไม่สามารถค้นหาสิ่งที่ฉันติดตั้งลงไป~/Library/Python/3.7/site-packagesได้

ฉันได้ลองติดตั้งระบบปฏิบัติการใหม่ แต่เนื่องจากฉันยังไม่ได้ติดตั้งใหม่ทั้งหมดจึงไม่เปลี่ยนแปลงอะไรเลย ฉันกำลังคิดถึงอะไร ฉันจะแก้ไขสิทธิ์ได้อย่างไร ฉันต้องการติดตั้งแพ็กเกจที่ไหน( venvแน่นอน แต่บางแพ็คเกจที่ฉันต้องการใช้ทั่วโลก (เช่นjupyter)

ขอบคุณ


ฉันมีปัญหานี้เช่นกัน ฉันสงสัยว่าจะทำอย่างไรกับการสิ้นสุดของการสนับสนุน Python 2.7
Chris Dutrow

ฉันมีปัญหาเดียวกัน
มาเลกิ

1
คุณแน่ใจหรือว่าคุณกำลังใช้ที่ถูกต้องpip? เกิดอะไรขึ้นถ้าคุณใช้ปลอดภัยมากpython -m pip install ....?
Tom de Geus

@TomdeGeus: python3 -m pip install ...ในกรณีนี้ แต่ใช่เมื่อมี Python หลายรุ่นที่เกี่ยวข้องมันจะปลอดภัยกว่าในการเรียกใช้pipวิธีการ "exec module" ดังนั้นคุณจะรู้ว่าคุณกำลังใช้งาน Python ที่คาดหวังได้
ShadowRanger

ในการแก้ไขปัญหานี้ฉันสิ้นสุดการถอนการติดตั้ง python3 (ก่อนหน้านี้ติดตั้งด้วย brew) และใช้ pyenv เพื่อติดตั้ง python3 ตอนนี้มันใช้งานได้ทั้งหมด ทำตามคำแนะนำนี้: opensource.com/article/19/5/python-3-default-mac (ข้ามไปยังส่วนสุดท้าย)
Arseny Levin

คำตอบ:


2

เป็นการดีที่สุดที่จะไม่ใช้ Python ที่ระบบจัดหาให้โดยตรง ปล่อยให้มันอยู่คนเดียวเพราะระบบปฏิบัติการสามารถเปลี่ยนแปลงได้ในวิธีที่ไม่พึงประสงค์ตามที่คุณมีประสบการณ์

แนวทางปฏิบัติที่ดีที่สุดคือกำหนดค่าเวอร์ชัน Python ของคุณเองและจัดการตามแบบต่อโครงการโดยใช้virtualenv(สำหรับ Python 2) หรือvenv(สำหรับ Python 3) สิ่งนี้จะกำจัดการพึ่งพาทั้งหมดในเวอร์ชัน Python ที่ระบบจัดเตรียมไว้และแยกแต่ละโครงการออกจากโครงการอื่น ๆ บนเครื่อง

แต่ละโปรเจ็กต์สามารถมีเวอร์ชัน Python point ที่แตกต่างกันหากจำเป็นและรับsite_packagesไดเร็กทอรีของตัวเองเพื่อให้ไลบรารี่ที่ติดตั้ง pip สามารถมีเวอร์ชันที่แตกต่างกันตามโปรเจ็กต์ วิธีนี้เป็นวิธีแก้ปัญหาที่สำคัญ


0

มีปัญหาเดียวกันนี้ในการติดตั้ง Debian 9.12 ใหม่ การรีบูตเซิร์ฟเวอร์ของฉันแก้ปัญหาได้

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