homebrew를 사용하여 macOS에서 이전 버전의 Python 3을 어떻게 설치할 수 있습니까?


133

brew를 사용하여 macOS에서 이전 버전의 Python 3을 어떻게 설치할 수 있습니까?

이 명령으로 brew install python최신 버전의 Python 3 (현재 v3.7.0)을 얻었지만 마지막 버전의 Python 3.6 (현재 3.6.5)을 원합니다.

pyenv다른 파이썬 설치를 처리하는 데 도움이되는 다른 패키지에 대해 읽었 지만이 솔루션은 나에게 적합하지 않습니다.


5
그만한 가치가 있기 때문에, Homebrew의 여러 버전의 Python에 대한 지원은 끔찍하며 점차 악화되고 있습니다. Homebrew를 사용하여 Python을 설치하지 않는 것이 좋습니다. Python.org는 다양한 버전의 Python위한 macOS 설치 패키지를 제공하며,이 버전은 서로 나란히 (원하는 경우 Homebrew Python 설치와 나란히) 설치할 수 있습니다. 이러한 패키지를 사용하거나 pyenv 와 같은 도구를 사용 하면 결국에는 많은 슬픔을 줄일 수 있습니다.
Daniel Pryden

답변:


256

짧은 답변

Python 3.6.5를 새로 설치하려면 다음을 사용하십시오.

brew unlink python # ONLY if you have installed (with brew) another version of python 3
brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

이전에 설치된 버전을 복구하려면 다음을 수행하십시오.

brew info python           # To see what you have previously installed
brew switch python 3.x.x_x # Ex. 3.6.5_1

긴 답변

Homebrew로 Python을 설치하는 데에는 두 가지 공식이 있습니다 : python@2python.
첫 번째는 Python 2이고 두 번째는 Python 3입니다.

참고 : 웹에서 python3Python 버전 3을 설치하기위한 수식 이름으로 언급 된 오래된 답변을 찾을 수 있습니다 python.

기본적으로 이러한 공식을 사용하면 해당하는 주요 버전의 Python 최신 버전을 설치할 수 있습니다. 따라서 3.6과 같은 부 버전을 직접 설치할 수 없습니다.

해결책

를 사용 brew하면 공식 주소를 사용하여 패키지를 설치할 수 있습니다 (예 : git 저장소).

brew install https://the/address/to/the/formula/FORMULA_NAME.rb

또는 특히 Python 3

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/COMMIT_IDENTIFIER/Formula/python.rb

지정해야하는 주소는 원하는 버전에 대한 공식 (python.rb)의 마지막 커밋에 대한 주소입니다. homebrew-core / Formula / python.rb의 히스토리를 보면 커 민트 식별자를 찾을 수 있습니다.

https://github.com/Homebrew/homebrew-core/commits/master/Formula/python.rb

파이썬> 3.6.5

위의 링크에는 3.6.5 이상의 Python 버전에 대한 공식이 없습니다. (공식) 저장소의 관리자가 Python 3.7을 출시 한 후에는 Python 3.7의 레시피에만 업데이트를 제출합니다.

위에서 설명한 것처럼 homebrew에는 Python 2 (python @ 2)와 Python 3 (python) 만 있으며 Python 3.6에 대한 명시적인 공식은 없습니다 .

이러한 사소한 업데이트는 대부분의 경우와 대부분의 사용자와 관련이 없지만 대부분 3.6에 대한 명시 적 수식을 작성했는지 검색합니다.


2
이것이 기본 python3 인터프리터에 의존하는 Homebrew의 패키지에 어떤 영향을 미치거나 상호 작용합니까?
Telemachus

1
어쨌든, 파이썬 종속 응용 프로그램 (brew로 설치되거나 설치되지 않음)은 응용 프로그램 경로에서 python3 실행 파일을 찾고 python3이 python3.6을 가리키게합니다. 따라서 기본 Python 3은 3.6이며 (위의 예제를 사용하는 경우) 충분합니다. 파이썬 3.7은 매우 최근입니다. 파이썬 3.7을 명시 적으로 요구하는 응용 프로그램이 있는지 의심합니다. 동일한 방식으로 Python 3.6에서만 작동하는 응용 프로그램을 모릅니다. 다시 말해. 당신은 괜찮을 것입니다 :)
ePi272314

2
3.7이 설치되어 있고 Error: python 3.7.0 is already installed To install 3.6.5_1, first run '짧은 답변'을 사용할 때 brew unlink python`` 이 오류가 발생했습니다 .
wuliwong

2
3.6.5에 대한 직접 커밋 링크를 제공해 주셔서 감사합니다. 절망적 인 상황에서 나를 구해 주셨습니다.
tsalaroth

4
나는 이것이 조금 오래되었다는 것을 알고 있지만, 당신이 공식에 대한 링크를 얻는 방법을 알아 내려고 노력하고 있습니다. 3.6의 현재 버전은 3.6.7입니다.이 수식을 찾는 간단한 방법이 있습니까?
diek

32

업데이트 할 때

brew unlink python # If you have installed (with brew) another version of python
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

당신은 발생할 수 있습니다

Error: python contains a recursive dependency on itself:
  python depends on sphinx-doc
  sphinx-doc depends on python

이를 무시하려면 --ignore-dependenciesbrew install에 인수를 추가하십시오 .

brew unlink python # If you have installed (with brew) another version of python
brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

1
다음은 종속성 지옥과 악몽 ... 같이해야합니다 discourse.brew.sh/t/brew-install-python3-fails/1756/7
confiq

4
이것은 처음에는 저에게 효과가 없었습니다. brew install --debug --ignore-dependencies raw.githubusercontent.com/Homebrew/homebrew-core/… 그리고 html을 만들지 못하면 2)를 선택하여 오류를 무시하십시오. html / docs 실패는 나중에 나에게 물릴 것이지만, 지금은 잘 작동합니다 : shrug :
beans

20

내가 한 일은 처음으로 파이썬 3.7을 설치하는 것이 었습니다

brew install python3
brew unlink python

그런 다음 위의 링크를 사용하여 Python 3.6.5를 설치했습니다.

brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb --ignore-dependencies

그 후 나는 달렸다 brew link --overwrite python. 이제 가상 환경을 만들기 위해 시스템에 모든 파이썬이 있습니다.

mian@tdowrick2~ $ python --version
Python 2.7.10
mian@tdowrick2~ $ python3.7 --version
Python 3.7.1
mian@tdowrick2~ $ python3.6 --version
Python 3.6.5

Python 3.7 가상 환경을 만들려면

mian@tdowrick2~ $ virtualenv -p python3.7 env
Already using interpreter /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.7'
New python executable in /Users/mian/env/bin/python3.7
Also creating executable in /Users/mian/env/bin/python
Installing setuptools, pip, wheel...
done.
mian@tdowrick2~ $ source env/bin/activate
(env) mian@tdowrick2~ $ python --version
Python 3.7.1
(env) mian@tdowrick2~ $ deactivate

Python 3.6 가상 환경을 만들려면

mian@tdowrick2~ $ virtualenv -p python3.6 env
Running virtualenv with interpreter /usr/local/bin/python3.6
Using base prefix '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/mian/env/bin/python3.6
Not overwriting existing python script /Users/mian/env/bin/python (you must use /Users/mian/env/bin/python3.6)
Installing setuptools, pip, wheel...
done.
mian@tdowrick2~ $ source env/bin/activate
(env) mian@tdowrick2~ $ python --version
Python 3.6.5
(env) mian@tdowrick2~ $ 

1
이것이 좋을 것처럼 보이지만 더 이상 작동하지 않습니다.python -V && python3.7 -V && python3 -V && python3.6 -V Python 2.7.15 Python 3.7.3 Python 3.7.3 zsh: command not found: python3.6
Wafer

1
내 대답을 자세히 살펴보십시오 .3.6의 경우 python3.6 -V를 작성해야합니다. 당신은 python3 -V두 번 3.7.3잃어버린 이유를 두 번 3.6
겪었

1
나를 위해 이것은 python3.6아래에 숨겨져 /usr/local/Cellar/python/3.6.5_1/bin있습니다. 일단 링크를 만들면 말한대로 작동합니다. 이 파이썬 자체 관리 시스템은 브라운 운동으로 코딩하는 백만 프로그래머의 루브 골드버그 프랙탈 인 것 같습니다.
Eric Leschinski

11

파이썬 3.4.4를 설치하기 위해 위의 모든 대답을 시도했습니다. 파이썬 설치는 효과가 있었지만 PIP가 설치되지 않았고 작동시키기 위해 할 수있는 일은 없었습니다. zlib, openssl과 관련된 문제를 일으키는 Mac OSX Mojave를 사용하고있었습니다.

하지 말아야 할 것 :

  • Python 또는 Python3 공식으로 제공된 이전 버전에 Homebrew를 사용하지 마십시오. .
  • 파이썬 을 컴파일하려고하지 마십시오

해결책:

  1. 다운로드 맥 OS 64 비트 설치 또는 맥 OS 64 비트 / 32 비트 설치 : https://www.python.org/downloads/release/python-365/
  2. 이전 단계에서 Python 3.6.5 를 다운로드 합니다. 예를 들어 Python 3.4.4 를 다운로드 하려면 python-365 위의 URL 을 python-344로 바꾸십시오.
  3. GUI 설치 프로그램을 다운로드 한 파일을 다운로드하십시오.
  4. python-365 를 다운로드 한 경우 설치 후이 버전의 python을 시작하기 위해 터미널 python365를 입력합니다 .pip 와 같은 것은 pip365입니다.

추신 : 시스템에서 다른 버전의 Python을 제거 할 필요는 없습니다.


편집하다:


MacOSX, Windows, Linux 등에서 작동하는 훨씬 더 나은 솔루션을 찾았습니다.

  1. 이미 파이썬을 설치했는지 여부는 중요하지 않습니다.
  2. Anaconda 다운로드
  3. 터미널 유형으로 설치 한 후 : conda init
  4. 단말에서, 가상 환경을 만들고 있는 파이썬 버전, 예를 들어, I는 3.4.4 고른 :conda create -n [NameOfYour VirtualEnvironment] python=3.4.4
  5. 그런 다음 터미널에서 다음 명령으로 생성 한 모든 가상 환경을 확인할 수 있습니다. conda info --envs
  6. 그런 다음 터미널에서 다음을 사용하여 원하는 가상 환경을 활성화하십시오. conda activate [The name of your virtual environment that was shown with the command at step 5]

9

나는 모든 것을 시도했지만 작동시키지 못했습니다. 마침내 나는 pyenv그것을 사용 했고 그것은 매력처럼 직접 일했다.

따라서 homebrew설치하면 다음과 같이하십시오.

brew install pyenv
pyenv install 3.6.5

virtualenvs를 관리하는 방법 :

brew install pyenv-virtualenv
pyenv virtualenv 3.6.5 env_name

참조 pyenvpyenv-VIRTUALENV를 를 참조하십시오.

편집 (2019/03/19)

pyenv와 pyenv-virtualenv direclty를 설치하기 위해 pbrewv-installer를 사용하는 것이 homebrew보다 쉽습니다.

curl https://pyenv.run | bash

파이썬 버전을 관리하려면 다음을 수행하십시오.

pyenv global 3.6.5

또는 주어진 디렉토리에서 로컬로 :

pyenv local 3.6.5

이것은 실제로 질문에 직접 대답하는 것이 아니라 virtualenv접근 방식으로 회피하는 것 입니다.
javadba

1
실제로 virtualenv는 필요하지 않습니다. pyenvvenv를 사용하지 않고도 파이썬 버전을 관리 할 수 ​​있습니다
ClementWalter

6

아래와 같이 핍 문제에 직면 한 사람

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

근본 원인은 openssl 1.1이 더 이상 python 3.6을 지원하지 않기 때문입니다. 따라서 이전 버전 openssl 1.0을 설치해야합니다

해결책은 다음과 같습니다.

brew uninstall --ignore-dependencies openssl
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

1

이 문제를 해결하기 위해 homebrew임시로 날짜를 변경 homebrew-core하고 HOMEBREW_NO_AUTO_UPDATE변수를 유지 하도록 변수를 설정할 수 있습니다 .

cd `brew --repo homebrew/core`
git checkout f2a764ef944b1080be64bd88dca9a1d80130c558
export HOMEBREW_NO_AUTO_UPDATE=1
brew install python

보안 패치를 놓칠 수 있으므로 homebrew-core를 영구적으로 업데이트하지 않는 것이 좋지만 테스트 목적으로 유용합니다.

다음 brew extract명령을 사용하여 이전 버전의 홈 브루 수식을 자신의 탭 (tap_owner / tap_name)으로 추출 할 수도 있습니다 .

brew extract python tap_owner/tap_name --version=3.6.5

0

가장 쉬운 방법은 Anaconda를 설치하는 것이 었습니다 : https://docs.anaconda.com/anaconda/install/

거기에서 원하는대로 다른 Python 버전으로 많은 환경을 만들고 마우스 클릭으로 환경을 전환 할 수 있습니다. 더 쉬울 수 없었습니다.

다른 파이썬 버전을 설치하려면 다음 지침을 따르십시오 https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html

다른 Python 버전의 새로운 개발 환경이 2 분 이내에 완료되었습니다. 앞으로는 쉽게 앞뒤로 전환 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.