brew installed Python을 기본 Python으로 어떻게 사용합니까?


188

Mac OS X 10.6.2에서 Homebrew (fink 및 macport를 사용한 후)로 전환하려고합니다. 파이썬 2.7을 설치했습니다.

brew install python 

문제는 Macport와 달리 python_select 유틸리티가없는 것 같습니다. 기본 mac python은 항상 기본값입니다.

which python

나에게주세요

/usr/bin/python

그리고 /usr/bin/python심볼릭 링크가 아닙니다

파이썬 양조 맛을 기본 파이썬으로 만들려면 어떻게해야합니까?


14
Homebew는 더 이상 파이썬의 시스템 설치를 가리지 않습니다. 당신은 할 수 있습니다 : export PATH="/usr/local/opt/python/libexec/bin:$PATH"출처 : discourse.brew.sh/t/…
George

3
언급 된 모든 답변을 시도했지만 / usr / local / bin은 $ PATH에서 / usr / bin 앞에옵니다. brew link와 unlink를 시도했지만 brew doctor는 / usr / local / bin에 문제가 있기 전에 / usr / bin이보고되지 않았습니다. 여전히 어떤 파이썬을 할 때, brew와 함께 설치된 것이 아닌 / usr / bin / python을 얻습니다.
Ujwal Ratra

시도해보십시오 ... 어떤 python2
Fraser

답변:


117

Homebrew를 사용할 때 다음 명령은 더 나은 그림을 제공합니다.

brew doctor

산출:

==> / usr / bin은 / usr / local / bin 이전에 발생합니다. 이는 Homebrew에서 제공하는 프로그램 대신 시스템 제공 프로그램이 사용됨을 의미합니다. 예를 들어 이것은 문제입니다. brew 설치된 Python.

.bash_profile을 편집하여 $ PATH에서 / usr / bin보다 먼저 / usr / local / bin을 넣으십시오.


4
경로에 / user / local / bin TWICE가 없는지 확인하십시오. 내 경로에 어떤 이유로 든 / usr / bin 전후에 나타나서 나를 미치게했습니다.
vinaut

1
많은 프로그램이 헤더에서 / usr / bin / python을 사용하여 실행 가능한 솔루션이 아닙니다.
mschuett

5
High Sierra에서의 추출은 python2/ usr / local / bin에만 있습니다 python. 세트 export PATH="/usr/local/opt/python/libexec/bin:$PATH"에서~/.bash_profile
tormodatt

86

참조 : Homebrew에서 Python을 심볼릭 링크하는 방법은 무엇입니까?

$ brew link --overwrite python
Linking /usr/local/Cellar/python/2.7.3... 28 symlinks created
$ which python
/usr/local/bin/python

11
파이썬을 설치할 때 왜 이런 일이 발생하지 않습니까?
벤 웨스트

4
python3 때문에 @BenWest, 이제 python2 대신 python2를 얻습니다.
georgexsh

1
사용하도록 설정하지 않았습니다.
theonlygusti

1
필자의 경우,이 명령을 실행 한 후 터미널을 다시 시작해야했습니다 ( Martijn Courteaux의 답변
있듯이

2
이것은 나를 위해 python @ 2를 연결합니다
Andrew B.

63

빠른 수정:

  1. 열다 /etc/paths
  2. 줄 순서 변경 (가장 높은 우선 순위)

제 경우에는 /etc/paths다음과 같습니다.

/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin

OSX의 경로에 대해 더 알고 싶다면이 기사가 상당히 유용하다는 것을 알았습니다.

http://muttsnutts.github.com/blog/2011/09/12/manage-path-on-mac-os-x-lion/


1
감사합니다. 위의 모든 답변으로 문제가 해결되었지만 귀하의 문제는 해결되었습니다. 정말 고맙습니다!
Sean

7
이것의 문제는 모든 사용자에 대해 변경한다는 것입니다 : /, IMO 더 구체적인 것을 변경하는 것이 좋습니다.
랜달 헌트

@RandallHunt 무엇을 어떻게 좋아합니까?
Mike Kormendy

63

자체 설치 홈브류에 의해 제안으로, 당신이를 추가해야합니다 .bashrc또는 .zshrc:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

11
High Sierra에서 올바른 방법입니다. 투표하세요!
tormodatt

MacOS의 기본값은 zsh 터미널이므로 변경해야 할 파일이 .zshrc아닌 파일 일 가능성이 .bashrc있습니다.
394430

1
이것을 제외하고 다른 대답은 나를 위해 일하지 않았습니다! 여기서 macOS Catalina를 실행하십시오. 감사!
Ali Akbar

정답입니다
HarshMarshmallow

44

OSX High Sierra에 대해 "brew install python"을했습니다. $PATH했다 /usr/local/bin다른 경로 전에하지만 여전히which python 시스템의 파이썬을 가리키는했다.

자세히 살펴보면에 python 실행 파일이 없음을 발견했습니다 /usr/local/bin. 실행 파일 이름은 python2입니다. 이 문제를 해결하려면 다음을 python가리키는 기호 링크를 작성하십시오 python2.

/usr/local/bin $: ln -s python2 python


4
이 문제가 High Sierra
RandomDeduction

너는 나의 영웅이야. 이 솔루션을 몰랐다는 것을 믿을 수 없습니다!
Smokin Joe

3
또한 적용하려면 터미널을 다시 시작해야합니다
lexa-b

3
$ cd / usr / local / bin $ ln -s python3 python
Pnemonic

1
그리고 sym-link pip를 pip3 (또는 pip2)으로 가정하십시오.
alexP_Keaton

23

Homebrew는 "/ usr / bin"의 내용을 대체하지 않습니다. "/ usr / local / bin"을 "/ usr / bin"보다 앞에두고 "python"을 사용하면 "/ usr / local / bin / python"이 표시됩니다.

/ usr / bin / python (또는 / usr / bin / ruby)을 교체하는 것은 권장하지 않습니다.


2
그러나 그렇지 않습니다!
theonlygusti

22

python공식은 이제 python3(v3.6.5)를 사용하고 brew는 디렉토리 를 링크합니다 :

/usr/local/opt/python -> ../Cellar/python/3.6.5

또한 바이너리를 연결합니다 :

/usr/local/bin/python3 -> ../Cellar/python/3.6.5/bin/python3

그래도 계속 사용해야하는 경우 다음을 python2.x사용하십시오.

brew install python@2

homebrew 's를 사용하려면 pythonbash의 디렉토리를 PATH에 넣으십시오.

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

물고기의 경우 :

set -x PATH /usr/local/opt/python/libexec/bin $PATH

노트 :

  1. 이렇게하면 시스템 기본 버전의 그림자가 생깁니다. python
  2. homebrew /usr/local/share/python는 이전 버전에서 Python을 연결하는 데 사용되었습니다 .

이것은 나에게 속임수였다. 기본적으로 brew는 .exe라는 exec가 아닌python3 경로에 설치 됩니다 . 특히 내 경로의 다른 디렉토리보다 먼저 참조 하면 항목이 정리됩니다. python/usr/local/opt/python/libeexec/bin
cam8001

13

$ PATH를 수정하고 이것을 bashrc 또는 bash_profile에 추가하십시오.

export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH

더 많은 여기를 클릭하십시오 : Issue # 89791


내 에디터 "PyCharm"은 ~ / .bashrc를 사용하고 있었고이 작은 보석이 될 때까지 brew의 파이썬을 작동시킬 수 없었습니다. 감사합니다 @Aben
JamesDeHart

10

homebrew python이있는 곳이 / usr / bin보다 먼저 검색되도록 PATH 환경 변수를 편집해야합니다. 쉘 설정에서 PYTHON과 같은 변수를 원하는 버전의 파이썬으로 설정하고 $PYTHON대신 호출하도록 설정할 수 있습니다python 하고 명령 줄이 .

또한 다른 포스터 (특히 Mac에서)에서 언급했듯이 / usr / bin의 파이썬을 엉망으로 만들어 다른 파이썬 설치를 가리지 마십시오. 당신이 할 경우 문제를 요구하고 있습니다.


9

나는했지만 brew install python$PATH것이 좋았지 만 여전히 which python시스템을 설치했다. 터미널을 다시 시작하면 문제가 해결되었습니다.


1
이것이 내가해야 할 전부입니다. 그래도 언제 해야할지 모르겠습니다. 그냥 실행 brew install python한 다음 터미널을 다시 시작하는 것 같습니다. brew unlink& 필요 없어 brew link?
Con Antonakos

brew를 사용하여 python을 설치 한 직후 "python"은 올바른 로컬 python 경로를 제공하지만 "python"명령은 시스템이 하나의 호출로 설치되었음을 나타냅니다. 터미널을 다시 시작하여 수정했습니다.
Michelle

2
터미널을 다시 시작할 필요가 없습니다.hash -r
georgexsh

JFC, 나는 이것을 읽을 때까지 내 마음을 잃고 있었다. 나는 이미 brew unlink & brew link여러 번했다. 터미널을 다시 시작하기
Dominic

6

python이제 python3필요한 경우을 가리 킵니다 python 2. brew install python@2그런 다음 .zshrc 또는 .bashrc 파일 export PATH="/usr/local/opt/python@2/libexec/bin:$PATH" 에서 pyhon --version= Python 2.7.14 및 python3 --version= Python 3.6.4. 그것은 내가 터미널에서 보는 데 익숙한 행동입니다.


5

필자는 homebrew python을 기본값으로 만들 수있는 방법이 있다고 생각하지만 문제를 해결하는 올바른 방법은 시스템 python 경로를 망가 뜨리지 않는 것입니다. -python 옵션). 같은 도구를 사용하는 python_select것은 거의 항상 나쁜 생각입니다.


2

대신 pyenv를 사용하여 Python 버전을 설치하고 전환하십시오. 나는 rbenv를 몇 년 동안 사용했지만 같은 일을하지만 루비에도 사용되었습니다. 그 전에 버전을 관리하는 것은 지옥이었습니다.

설치 지침은 pyenv의 github 페이지 를 참조하십시오 . 기본적으로 다음과 같습니다.-homebrew를 사용하여 pyenv를 설치합니다. brew install pyenv -pyenv가 마술처럼 할 수 있도록 쉘 시작 스크립트 끝에 함수를 추가하십시오.echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

  • pyenv를 사용하여 필요한 여러 버전의 Python을 설치하십시오. pyenv install 3.7.7.
  • 기본 (전역) 버전을 방금 설치 한 최신 버전으로 설정하십시오. pyenv global 3.7.7.
  • 다른 버전의 파이썬을 사용해야하는 프로젝트에서 작업하는 경우를 살펴보십시오 pyevn local. 이것은 프로젝트 폴더에 파이썬 버전을 지정하는 파일을 만듭니다. Pyenv는 해당 파일의 버전으로 전역 파이썬 버전을 재정의합니다.

1

그냥 해:

brew install python
brew link python

그런 다음 bashrc 또는 bash_profile에 추가하십시오.

alias python='/usr/local/bin/python2'

즐겨!


내가했던 것과 똑같은 문제에 부딪힌 것 같습니다. link여기에 답변 의 명령이 있더라도 양조하는 모든 링크 /usr/local/binpython2대신에 사용 python됩니다. 이 문제를 해결하기 위해 별칭을 사용하는 것은 나쁜 생각처럼 보이지만 아직 더 좋은 것을 찾지 못했습니다.
Patrick M

별칭 대신 방금 복사 cp /usr/local/bin/python2 /usr/local/bin/python했는데 제대로 작동하는 것 같습니다. 이것은 더 추악한 해결 방법입니까?
kingb12

1

/usr/local/opt/python/libexec/bin명시 적으로 추가 하십시오 .bash_profile:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

그 후에는 올바르게 작동해야합니다.


1

생선 껍질이라면

echo 'set -g fish_user_paths "/usr/local/opt/python/libexec/bin" $fish_user_paths' >> ~/.config/fish/config.fish

0

/ etc / paths를 편집 할 수 있습니다. 여기 내 것이있다 :

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

그런 다음 파이썬 버전에 대한 심볼릭 링크를 추가하십시오. 나의 경우에는

$ cd /usr/local/bin
$ ln -s python3 python

짜잔!


0

High Sierra부터 다음을 사용해야합니다.

sudo chown -R $(whoami) $(brew --prefix)/*

/usr/local더 이상 chowned 할 수 없기 때문 입니다


-7

기본 파이썬의 의미를 모릅니다. 시스템 파이썬 인터프리터를 다른 버전으로 바꾸는 것은 나쁜 습관이라고 생각합니다. 시스템 기능 시스템 Python 및 특정 모듈 또는 특정 Python 버전에 따라 달라질 수 있습니다 . 대신 사용자 정의 Python 설치를 안전한 다른 곳에 설치하고 필요에 따라 $ PATH를 조정하여 기본 Python을 찾는 대신 경로 조회를 통해 Python 을 호출 하십시오 .


5
OS X에서 homebrew의 파이썬이 경로에서 시스템의 파이썬보다 먼저 나올 위험은 없습니다. 이것은 매우 일반적입니다.
Steven Noble

3
또한 Apple 이외의 Python을 사용해야 할 필요성도 있습니다. matplotlib, NumPy 및 SciPy를 가져오고 'default'(일명 Apple) Python으로 실행하려고했습니다. 32/64 비트를 다루는 것만으로도 확장 기능을 쉽게 사용할 수 있습니다. 대신 좋은 맥주를 마시 게되어 매우 기쁩니다. 그리고 기본적으로 ( 'brew install python') Brew는 당신이 의미하는 바를 정확하게 수행합니다-경로를 재정의하지 않고 별도의 구조에 두 번째 파이썬을 설치합니다 (이것이 SO 질문이 발생하는 이유입니다).
akauppi 2013
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.