ปัญหาในการใช้ zsh กับ Catalina, Python / Python3, pip / pip3, PATH, zshrc เป็นต้น


14

ฉันเพิ่งปรับปรุงเป็น Catalina และ zsh เริ่มต้น ฉันอาจเลอะเส้นทางในระหว่างการเปลี่ยนแปลงและฉันกำลังพยายามสังคายนาสถานที่ของ Python3.7, pip3, PATH บรรทัดคำสั่งและไฟล์ zshrc ของฉัน

ดูเหมือนว่ามีไฟล์ที่ซ้ำซ้อนที่อาจมีอยู่ใน / usr / bin, / usr / local / bin, / usr / local / Cellar / python และ /Users/ ที่อยู่ผู้ใช้ / hostloc / bin

ต่อไปนี้คือการทำซ้ำคำสั่ง:

$ which python3
/usr/bin/python3
$ which python
/usr/bin/python
$ which pip
pip not found
$ which pip3
/usr/bin/pip3
$ pip3 -V
Traceback (most recent call last):
  File "/Library/Developer/CommandLineTools/usr/bin/pip3", line 10, in <module>
    sys.exit(main())
TypeError: 'module' object is not callable
$ cat ~/.zshrc
export PATH=$PATH:/usr/local/bin:/usr/bin
$ echo $PATH
/Users/[user]/.local/bin:/bin:/usr/bin:/usr/local/bin:/Users/[user]/anaconda3/bin:/Users/[user]/anaconda3/bin:/Users/[user]/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/[user]/anaconda3:/Library/TeX/texbin:/usr/local/share/dotnet:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Xamarin Workbooks.app/Contents/SharedSupport/path-bin:/usr/local/bin:/usr/bin:/usr/local/bin:/usr/bin

ใครช่วยฉันแก้ปัญหาทั้งหมดนี้ได้ไหม จากสิ่งที่ฉันเข้าใจ: ฉันต้องการ Python2.x สำหรับระบบปฏิบัติการเท่านั้น ด้วย Catalina ตอนนี้ฉันควรจะเก็บ Python3.x ภายใน User ของฉันเท่านั้น (ไม่ใช่ใน / usr)? pip3 ถูกติดตั้งโดยอัตโนมัติด้วย Python3.x (แม้ว่าของฉันจะส่งคืนข้อผิดพลาด) และควรติดตั้งภายในผู้ใช้ของฉันไม่ใช่ใน / usr? นอกจากนี้ $ PATH ของฉันยังมีเศษเหลืออยู่เช่น Anaconda ซึ่งฉันได้ลบออกไป ... ฉันจะอัพเดต $ PATH ของฉันได้อย่างไร ภายในไฟล์ zshrc?


ดูเหมือนว่าไม่ว่าจะมีการแก้ไขใด (เช่นฉันลบอนาคอนดาออกจากไฟล์ / etc / path ของฉันเพราะฉันไม่ได้ใช้งานอีกต่อไป) ซึ่งไพ ธ อนและไพ ธ อนตัวไหนชี้ไปที่ / usr / bin แทนตำแหน่งอื่น
OJT

1
which -aจะแสดงให้คุณทุกPATHเส้นทางที่เป็นไปได้ว่าการแข่งขันในลำดับที่ปรากฏใน ข้อมูลนั้นอาจเป็นประโยชน์
chepner

ฉันประสบปัญหาเดียวกันหลังจากอัปเดตpipโดยใช้sudo pip3 install ---upgrade pipกับ Catalina อย่างไรก็ตามการใช้python3 -m pipงาน sitll คุณสามารถใช้สิ่งนี้เป็นวิธีแก้ปัญหา
Jonas Drotleff

คำตอบ:


8

ฉันพบปัญหานี้หลังจากการติดตั้ง Catalina ให้เรียบร้อย zshฉันยังมีการใช้

สิ่งที่ฉันทำผิด:

ฉันได้ติดตั้งเวอร์ชันใหม่pipโดยใช้:

sudo pip3 install --upgrade pip

ตามที่ได้รับแจ้ง อย่างไรก็ตามสิ่งนี้จะไม่ทำงานกับ Apple pythonเนื่องจากเส้นทางจะไม่ถูกต้อง แต่sudo -Hควรจะใช้

ฉันจะแก้ไข pip ได้อย่างไร:

โชคดีที่ยังคงทำงานเป็นวิธีแก้ปัญหาสำหรับpython3 -m pippip3

ติดตั้งรุ่นเก่ากว่าpip(ในกรณีของฉัน19.3.0เพียงพอ):

sudo -H python3 -m pip install --upgrade pip==19.3.0

แล้วอัพเกรดอีกครั้ง:

sudo -H python3 -m pip install --upgrade pip

ฉันหวังว่านี่จะช่วยแก้ปัญหาของคุณได้เช่นกัน


0

ฉันมีปัญหาเช่นเดียวกับคุณ แก้ไขได้ด้วย

brew install python3

1
การตั้งค่าและข้อผิดพลาดแบบเดียวกับ OP แน่นอนไม่ได้รับการแก้ไขโดยสิ่งนี้
Melka

0

ฉันแก้ไขปัญหาด้วยการลบ ~ / Library / Python


โปรดเมื่อใดก็ตามที่คุณตอบคำถามหรือเพิ่มความคิดเห็นใด ๆ ให้แน่ใจว่าจะเป็นในรูปแบบดังกล่าวซึ่งเป็นที่เข้าใจโดยคนอื่น ๆ และทำให้รู้สึกถ้าผู้ใช้ใหม่มาใน.
Ashwin agrawal

0

ผมยังทำงานในเรื่องนี้ในสดติดตั้ง MacOS Catalina emulator + ohmyzshกับระยะคิตตี้

การอ่านคำถามนี้ทำให้ฉัน.zshrcเห็นว่าบรรทัดยังมีความคิดเห็นอยู่

\#export PATH=$HOME/bin:/usr/local/bin:$PATH

ฉันลบความคิดเห็นซึ่งเพิ่ม $ HOME / bin ลงใน PATH

~/.zshrc

export PATH=$HOME/bin:/usr/local/bin:$PATH

การเปลี่ยนแปลงนี้ทำให้ฉันสามารถรันpip3คำสั่งได้โดยไม่มีข้อผิดพลาดการย้อนกลับ


0

ฉันมีปัญหาที่คล้ายกัน คุณสามารถใช้ได้

rehash

ในบรรทัดคำสั่งของคุณเพื่อปรับปรุงเส้นทางของคุณ มันแก้ไขปัญหาสำหรับฉัน

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