[python] Brew-python @ 2 재설치

brew와 함께 openssl 및 python @ 2에 문제가 있으며 여기에 설명되어 있습니다 (해결되지 않음) . Python 및 openssl을 다시 설치하는 문서화 된 해결 방법이 작동하지 않아서 Python을 제거하고 다시 설치하기로 결정했습니다.

문제는 brew와 함께 Python 2를 설치하려고 할 때 다음 메시지를 수신한다는 것입니다.

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의 python @ 2에 의존하는 많은 양조 공식을 가지고 있습니다. 이러한 포함 awscli, letsencrypt, 홍보 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



답변

homebrew 직원은 macOS에서 가능한 한 Python 2.7을 사용하는 것을 최대한 어렵게 만듭니다.

  1. 링크 된 brew extract링크는 실제로 유용하지 않으므로 추출 된 소스에서 직접 탭하는 방법에 대한 답변을 찾아야합니다.
  2. 연결된 커밋 : 028f11f9e에 이미 삭제 된 파일이 포함되어 있으므로 잘못되었습니다.
  3. brew extract명령 도 제대로 작동하지 않습니다 때문에 패키지 이름에 @의.

솔루션은 매우 간단하지만 알려진 최신 커밋에서 설치하면됩니다.

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

이것이 “불안정”하다는 경고가 있습니다. Git 히스토리에서 커밋이 가능한 한 안정적이라는 것을 이해하지 못합니다.


답변