Homebrew를 사용하여 Mac에 Python 2와 3을 모두 설치하려면 어떻게해야합니까?


146

파이썬 2와 3 사이를 전환 할 수 있어야합니다. 경로를 엉망으로 만들고 문제를 일으키지 않기 위해 Homebrew를 사용하여 어떻게합니까? 지금은 Homebrew를 통해 2.7을 설치했습니다.


Homebrew 참조를 제거하기 위해 질문을 변경하고 싶을 수도 있습니다. 목표를 달성하는 데 반드시 필요한 것은 아니기 때문에 아래의 답변을 참조하십시오 (예 : stackoverflow.com/a/49091638/2923369 )
Matt Schlobohm

답변:


288

pyenv를 사용 하겠습니다. 설치할 수 있습니다.

$ brew install pyenv

Bash 쉘에서 pyenv를 활성화하려면 다음을 실행해야합니다.

$ eval "$(pyenv init -)"

시작할 때 Bash를 자동으로 수행하려면 해당 행을에 추가하십시오 ~/.bash_profile. 1

용법:

pyenv를 설치하고 활성화하면 다른 버전의 파이썬을 설치하고 사용할 수있는 버전을 선택할 수 있습니다. 예:

$ pyenv install 2.7.5

다음과 함께 설치 한 버전을 확인할 수 있습니다.

$ pyenv versions

그리고 다음 명령을 사용하여 파이썬 버전 사이를 전환 할 수 있습니다.

$ pyenv global 3.3.1

또한 다음을 사용하여 현재 디렉토리의 파이썬 버전을 설정할 수 있습니다.

$ pyenv local 3.5.2

다음을 실행하여 확인할 수 있습니다 python --version.

$ python --version
Python 3.5.2

1 pbrewv 설치시이 작업을 수행하도록 지시하는 Homebrew가 있었지만 메시지가 제거되었습니다 . Zsh 및 기타 셸의 경우 정확한 단계가 다를 수 있습니다.


이것이 가장 간단한 해결책입니다. 저는 현재 파이썬 3과 2.7.x 사이를 전환하기 위해 이것을 사용합니다
Naz Mir

3
이미 homebrew를 통해 python 2.7을 설치 했다면 pyenv 사용에주의해야 할 것이 있습니까? pyenv를 통해 다른 python 2.7을 설치할 수 있습니까 ?
Drake Guan

3
그러나 pyenv를 통해 다른 python 2.7을 설치할 수 있습니다. 해당 파이썬을 $ PYENV_ROOT / versions에 설치합니다. homebrew를 통해 설치된 다른 python 2.7은 "pyenv 버전"을 실행할 때 "시스템"으로 나타날 수 있습니다.
moliware

5
eval "$(pyenv init -)"pyenv가 작동하려면 내 .profile / .zshrc 에 추가 해야했습니다.
Rohmer

5
@ilciavo, eval "$(pyenv init -)"~ / .bash_profile 에 추가해야 할 수도 있습니다.
Jojanzing

77

두 버전을 동시에 설치할 수 있습니다.

Homebrew> = 1.5.0의 경우 :

2018 년 3 월 1 일부터 python 공식은 Python 3.x로 업그레이드되며 python@2, 특히 Python 2.7 용 으로 새로운 공식이 추가됩니다.

변경 사항 발표는 여기를 참조 하십시오 또는 Python 용 Homebrew 사용에 대한 최종 문서를 하십시오 .

오래된 Homebrew의 경우 :

Python 2.x의 경우 :

brew install python

Python 3.x의 경우 :

brew install python3

이제 컴퓨터에 두 버전이 모두 설치되었습니다. 버전 2를 사용하려면 python실행 파일을 사용하십시오 . 버전 3을 사용하려면 python3실행 파일을 사용하십시오 .


질문은 두 가지를 모두 사용하는 것에 관한 것입니다.
meduz

업데이트 해 주셔서 감사합니다! 나는 비슷한 길을 갔지만 PYTHONPATH각 변경마다 설정 해야하는 데 문제가있었습니다 ... 어떤 생각? 그 외에도 pyenv훌륭합니다.
meduz

9
또한 python2와 python3이 나란히 있으면 파이썬이 python2를 가리키고 python3이 python3을 예상대로 가리킨다는 점에 유의하십시오. 그러나 큰 문제는 예상대로 pip가 pip2를 가리 키지 않는다는 것입니다. 실제로는 pip3을 가리 킵니다 (pip3과 마찬가지로). pip2를 사용하려면 pip2를 명시 적으로 사용하십시오. 파이썬의 비 수치 접미사가 2를 가리 키지 만 핍의 비수 미가 3을 가리키는 비트가 일치하지 않습니다.
JD

5
이것은 pip와 같은 일반적인 실행 파일을 엉망으로 만듭니다. 이 경우 python3은 python2 pip를 덮어
쓰며 이것이

1
@ kissgyorgy의 의견에 대응 : 나는이 문제에 대한 마지막 코멘트가 나를 위해 그것을 해결, 그 문제를 가지고 github.com/Homebrew/legacy-homebrew/issues/50607 실행 python3 -m pip install -U --force-reinstall pip한 후 python -m pip install -U --force-reinstall pip필요에 다시 넣어 물건을 pip파이썬 2의 참조 pip.
Harry

11

현재 Homebrew는 Python 2 및 3에 대해 서로 다른 두 가지 수식을 제공 brew install python합니다. python3을 brew install python@2설치하고 python2를 설치합니다. Homebrew 문서에 대한 자세한 내용 :

https://docs.brew.sh/Homebrew-and-Python

현재 Homebrew를 통해 2.x를 설치 한 경우 Homebrew는 다음과 같은 메시지를 표시합니다.

Error: python 2.7.14 is already installed
To upgrade to 3.6.5, run `brew upgrade python`

당신이 실행하는 경우 :

brew upgrade python

당신은 할 수 있어야합니다 :

python --version

python3 --version

설치된 Python 2.x 및 3.x 버전을 확인하십시오.


6

또는 "python3"을 입력하여 최신 버전의 python3.x를 실행하고 "python"또는 "python2"를 설치하여 최신 버전의 2.x 버전을 실행할 수 있습니다.


4

둘 다 사용하는 방법이 있지만 오늘날 가장 간단한 해결책은 pyenv 를 사용하는 것입니다. 입니다. pyenv를 사용하면 버전간에 쉽게 전환 할 수 있습니다. 다음은 내가 설정 한 작업입니다.

1 단계:

Mac에서 모든 파이썬 제거

 brew uninstall --ignore-dependencies --force python
 sudo rm -rf ~/miniconda3/
 sudo rm -rf ~/.conda/

에서 다음을 제거하십시오 ~/.bash_profile

export PATH="/Users/ishandutta2007/miniconda3/bin:$PATH"

그리고 또한 다음에서 ~/.bashrc

export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
export PYTHONPATH=/usr/local/lib/python2.7/site-packages/google:$PYTHONPATH
alias python="/usr/bin/python"

2 단계 :

pyenv 및 필요한 Python 버전 설치

brew update
brew install pyenv
pyenv install 2.7
pyenv install 3.7.0

STEP3 :

추가 pyenv initbash_profile또는bashrc

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

STEP4 :

무엇을 설치했는지 확인

pyenv versions
  • 시스템 (/Users/ishandutta2007/.pyenv/version에서 설정)

    2.7

    3.7.0

5 단계 :

기본값을 선택하십시오

pyenv global 3.7.0

프로젝트에 이전 버전이 필요한 경우 루트 폴더로 이동하여 실행하십시오.

pyenv local 2.7

1

asdf를 사용하십시오 !

asdf의 발라드

옛날 옛적에 프로그래밍 언어
가 있었다 그것의 많은 버전이 있었다
그래서 사람들은 그것을
위해 버전 관리자를 썼습니다
.

더 많은 프로그래밍 언어
가 생겨서 더 많은 버전 관리자가 생겼습니다.
습니다.

나는 많은 것을 설치했고
나는 많은 명령을 배웠다

그런 다음 하나의 버전 관리자 만 추가
했습니다.

그래서 다른 버전 관리자
asdf 버전 관리자가 있습니다 . https://github.com/asdf-vm/asdf


누구나 플러그인
을 만들 수있는 확장 가능한 버전 관리자 선호하는 언어를 지원하기 위해
더 이상 버전 관리자를 설치하지
않거나 더 많은 명령을 배우지 않아도 됩니다.

https://github.com/asdf-vm/asdf
https://github.com/tuvistavie/asdf-python
https://github.com/asdf-vm/asdf-plugins


이것들은 경쟁 도구가 아니라 언어마다 한 번 (그리고 때로는 두 번 이상) 구현되는 동일한 도구라고 생각합니다. 왜 우리는 LSP와 같은 것이 필요할까요, IMHO. microsoft.github.io/language-server-protocol/viewview
Matt Schlobohm 2018 년

1

필자는 파이썬 버전 사이를 이동하는 데 동일한 요구 사항이 있다고 생각했지만을 사용하는 대신 소스에서 빌드하여 Python3.6만으로 필요한 모든 것을 달성했습니다 homebrew.

git clone https://git.<theThingYouWantToInstall>

저장소에 따라이 옵션에 대해 MAKE 파일이 이미 설정되어 있는지 확인하십시오.



-3

좋아, 나는 pip3이 없었기 때문에 Python3의 brew 설치로 어려움을 겪고 있었다.

sudo pip3 command not found

그래서 내가 했어

brew uninstall --force --ignore-dependencies python3

공식 배포판에서 일반 Python 3.6.2를 설치 한 다음 pip3이 있었고 모든 구성 요소가 정상이었습니다.


OP는 두 가지 모두 설치를 요구하고 있습니다.
Ajeet Ganga
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.