Brew - ponowna instalacja Pythona @ 2

14

Mam problemy z openssl i python @ 2 z brew, które wyjaśniłem tutaj (nierozwiązane) . Udokumentowane obejście ponownej instalacji Pythona i openssl nie działało, więc zdecydowałem, że odinstaluję i ponownie zainstaluję Pythona.

Problem polega na tym, że kiedy próbujesz zainstalować Python 2 z brew, pojawia się następujący komunikat:

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

Niestety nadal mam wiele formuł parzenia, które zależą od pytona Brew'a @ 2. Należą do nich awscli, letsencryptPR sshuttlenp

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

Nie wiem, jak użyć tego brew extractpolecenia, które udokumentowali, aby ponownie zainstalować Python @ 2. Potrzebuje formuły i kranu. Wyobrażam sobie, że byłaby to formuła python@2. Nie jestem pewien, jaki powinien być kran.

Dodatkowo ponowna instalacja kranów, takich jak awslub, letsencryptnie działa zbyt dobrze.

Po ponownej instalacji awscli( brew reinstall awscli) uruchamianie poleceń aws nadal powoduje błędy.

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
Paulina
źródło

Odpowiedzi:

54

Wygląda na to, że personel homebrew naprawdę utrudnia korzystanie z Pythona 2.7 na macOS.

  1. Połączony brew extractlink nie jest bardzo pomocna, trzeba szukać odpowiedzi tutaj o tym, jak zrobić własny kran z wydobytych źródeł.
  2. Połączony zatwierdzenie: 028f11f9e jest niepoprawny, ponieważ zawiera już usunięty plik.
  3. brew extractPolecenia nawet nie działać poprawnie z powodu @ w nazwie pakietu.

Rozwiązanie jest jednak bardzo proste, wystarczy zainstalować z najnowszego znanego zatwierdzenia:

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

Jest ostrzeżenie o tym, że jest to „niestabilne”, czego nie rozumiem, ponieważ zatwierdzenie w historii Gita jest tak stabilne, jak to tylko możliwe.

hyperknot
źródło
1
Po prostu umieszczam link do PR tutaj, gdzie usunięto python @ 2 (połączony 4 lutego 2020) github.com/Homebrew/homebrew-core/pull/49796
petschki
@petschki nie jest odpowiedzią, o którą prosiliśmy, ale odpowiedzią, którą chcieliśmy poznać!
ThinkBonobo