Brew - reinstalando o python @ 2

14

Estou tendo problemas com o openssl e o python @ 2 com o brew, que foram explicados aqui (não resolvidos) . A solução documentada para reinstalar o Python e o openssl não estava funcionando, então decidi desinstalar e reinstalar o Python.

O problema é que, quando você tenta instalar o Python 2 com o brew, você recebe esta mensagem:

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

Infelizmente ainda tenho várias fórmulas de fermentação que dependem do python @ 2 de Brew. Aqueles incluem awscli, letsencrypt, pr sshuttlepor exemplo

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

Não sei como usar esse brew extractcomando que eles documentaram para reinstalar o Python @ 2. Precisa de uma fórmula e uma torneira. Eu imagino que a fórmula seria python@2. Não sei ao certo qual seria a torneira.

Além disso, reinstalar as torneiras como awsou letsencryptnão está funcionando muito bem também.

Após a reinstalação awscli( brew reinstall awscli), a execução de comandos aws ainda gera erros.

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
Pauline
fonte

Respostas:

54

Parece que a equipe do homebrew realmente torna o mais difícil possível o uso do Python 2.7 no macOS possível.

  1. O brew extractlink vinculado não é realmente útil, você precisa procurar respostas aqui sobre como fazer seu próprio toque a partir de fontes extraídas.
  2. O commit vinculado: 028f11f9e está errado, pois contém o arquivo já excluído.
  3. O brew extractcomando nem funciona corretamente , por causa do @ no nome do pacote.

A solução é muito simples, você só precisa instalar a partir do último commit conhecido:

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

Há um aviso sobre isso ser "instável", que eu não entendo como um commit em uma história do Git é o mais estável possível.

hyperknot
fonte
11
Basta colocar o link para o PR aqui, onde o python @ 2 foi removido (mesclado em 4 de fevereiro de 2020) github.com/Homebrew/homebrew-core/pull/49796
petschki
@petschki não é a resposta que pedimos, mas a resposta que queríamos saber!
ThinkBonobo 16/04