Brew - ติดตั้ง python ใหม่อีกครั้ง


14

ฉันได้รับมีปัญหาเกี่ยวกับ OpenSSL และงูหลาม @ 2 ชงซึ่งได้อธิบายนี่ (ไม่ได้ตั้งใจ) วิธีแก้ปัญหาในเอกสารเพื่อติดตั้ง Python ใหม่และ openssl ไม่ทำงานดังนั้นฉันจึงตัดสินใจถอนการติดตั้งและติดตั้ง Python ใหม่อีกครั้ง

ปัญหาคือเมื่อคุณพยายามติดตั้ง Python 2 ด้วย Brew คุณจะได้รับข้อความนี้:

brew install python@2
Error: No available formula with the name "python@2"
==> Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
  git -C "$(brew --repo homebrew/core)" fetch --unshallow

python@2 was deleted from homebrew/core in commit 028f11f9e:
  python@2: delete (https://github.com/Homebrew/homebrew-core/issues/49796)
  EOL 1 January 2020.
  We gave it 1 month more to live so that people had time to migrate.
  All in all, developers had 11 years to do their migration.
  You can use the `brew extract` command and maintain python@2 in your own
  tap if necessary:
  https://docs.brew.sh/How-to-Create-and-Maintain-a-Tap

To show the formula before removal run:
  git -C "$(brew --repo homebrew/core)" show 028f11f9e^:Formula/python@2.rb

If you still use this formula consider creating your own tap:
  https://docs.brew.sh/How-to-Create-and-Maintain-a-Tap

น่าเสียดายที่ฉันยังมีสูตรชงหลายอย่างที่ขึ้นอยู่กับ Brew's python @ 2 เหล่านั้นรวมถึงawscli, letsencrypt, PR sshuttleตัวอย่างเช่น

aws
zsh: /usr/local/bin/aws: bad interpreter: /usr/local/opt/python@2/bin/python2.7: no such file or directory

ฉันไม่ทราบวิธีการใช้brew extractคำสั่งนี้พวกเขาบันทึกไว้เพื่อติดตั้ง Python @ 2 ใหม่ มันต้องการสูตรและการแตะ python@2ฉันคิดสูตรจะเป็น ฉันไม่แน่ใจว่าต้องใช้ก๊อกน้ำเท่าไหร่

นอกจากนี้การติดตั้งก๊อกน้ำใหม่awsหรือletsencryptทำงานได้ไม่ดีนัก

หลังจากติดตั้งใหม่awscli( brew reinstall awscli) การรันคำสั่ง aws ยังคงให้ข้อผิดพลาด

aws
/usr/local/Cellar/awscli/2.0.0/libexec/lib/python3.8/site-packages/jmespath/visitor.py:32: SyntaxWarning: "is" with a literal. Did you mean "=="?
  if x is 0 or x is 1:
/usr/local/Cellar/awscli/2.0.0/libexec/lib/python3.8/site-packages/jmespath/visitor.py:32: SyntaxWarning: "is" with a literal. Did you mean "=="?
  if x is 0 or x is 1:
/usr/local/Cellar/awscli/2.0.0/libexec/lib/python3.8/site-packages/jmespath/visitor.py:34: SyntaxWarning: "is" with a literal. Did you mean "=="?
  elif y is 0 or y is 1:
/usr/local/Cellar/awscli/2.0.0/libexec/lib/python3.8/site-packages/jmespath/visitor.py:34: SyntaxWarning: "is" with a literal. Did you mean "=="?
  elif y is 0 or y is 1:
/usr/local/Cellar/awscli/2.0.0/libexec/lib/python3.8/site-packages/jmespath/visitor.py:260: SyntaxWarning: "is" with a literal. Did you mean "=="?
  if original_result is 0:
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: the following arguments are required: command

คำตอบ:


54

ดูเหมือนว่าเจ้าหน้าที่ homebrew ทำให้ยากที่สุดในการใช้ Python 2.7 บน macOS เท่าที่จะทำได้

  1. ลิงก์ที่เชื่อมbrew extractโยงนั้นไม่มีประโยชน์จริง ๆ คุณต้องค้นหาคำตอบที่นี่เกี่ยวกับวิธีการทำก๊อกของคุณเองจากแหล่งที่มา
  2. การคอมมิตที่เชื่อมโยง: 028f11f9e นั้นผิดเนื่องจากมีไฟล์ที่ถูกลบไปแล้ว
  3. brew extractคำสั่งไม่ได้ทำงานอย่างถูกต้องเพราะ @ ในชื่อแพคเกจ

วิธีแก้ปัญหานั้นง่ายมาก แต่คุณเพียงแค่ต้องติดตั้งจากการคอมมิทล่าสุดที่รู้จัก:

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/86a44a0a552c673a05f11018459c9f5faae3becc/Formula/python@2.rb

มีคำเตือนเกี่ยวกับสิ่งนี้ว่า "ไม่เสถียร" ซึ่งฉันไม่เข้าใจว่าคำมั่นในประวัติศาสตร์ของ Git นั้นเสถียรเท่าที่คุณจะได้รับ


1
เพียงแค่ใส่ลิงค์ไปยัง PR ที่นี่ซึ่ง python @ 2 ถูกนำออก (รวม 4 กุมภาพันธ์ 2020) github.com/Homebrew/homebrew-core/pull/49796
petchki

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