Snow Leopard에서 기본 Python 버전을 어떻게 변경합니까?


27

최근에 Mac OS X 10.5 Leopard 설치를 10.6 Snow Leopard로 업그레이드했으며, 업그레이드 된 버전의 Python 2.6.1 (2.5.1 대신)이 제공되었습니다. 이제 python터미널에 입력 해도 여전히

Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) 
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

나는 /usr/bin/파이썬 2.6을 얻으려면 입력해야한다는 것을 알았습니다 python2.6.

질문은 : 어떻게 python명령을 파이썬 2.6에 매핑합니까?

답변:


21

그것은 간단합니다:

defaults write com.apple.versioner.python Version 2.6

man pythonApple의 자세한 설명을 참조하십시오 .

또한 하나의 문제는 컴퓨터와 함께 제공된 Python이 아닌 다른 컴퓨터와 함께 제공된 Python을 실행 중인지 확인하는 것입니다. which python명령 프롬프트 에 입력 하여이를 수행하십시오. 을 가리켜 야합니다 /usr/bin/python. Snow Leopard에서 기본값이 2.6이므로 Leopard를 사용할 때 2.5였습니다. 따라서 2.5를 받고 있다는 사실은 경로에 다른 것이 있음을 나타낼 수 있습니다.

최신 정보

아래에 의견을 제시하려면 :

이것은 사람들이 요구하는 것을하지 않습니다.

그것은 OS X 10.8.2에서 나를 위해합니다. 을 한 후에 defaults write com.apple.versioner.python Version 2.6파이썬의 기본 버전은 실제로 2.6입니다. (그리고 2.7로 다시 바꾼 후에도 마찬가지입니다.)

python직접 실행 하거나 실행 가능한 스크립트로 시작 하든 이것은 #!/usr/bin/env python예상되는 버전의 Python을 얻습니다.

이것은 현재 2.7을 가리키는 /System/Library/Frameworks/Python.framework/Versions의 심볼릭 링크를 해결하지 못합니다 (2.6으로 여전히 sys.path에 있기 때문에 문제가 발생할 수 있습니다!)

실제로, 그것은 그 심볼릭 링크를 수정하지 않습니다.

그러나, 짧은 스크립트 실행 print()을이야 sys.path와 2.6 라이브러리 디렉토리 (내 상대적으로 기본 설정에 적어도) 입니다 경로와 2.7 DIRS이 없는 경로에 있습니다. Current경로상의 심볼릭 링크 디렉토리 도 아닙니다 . 따라서 대부분의 스크립트에는 문제가되지 않습니다.

그러나 테스트되지 않았지만 Currentsymlink가 easy_install또는에 의해 사용될 수 있습니다 pip. 문제가 생길 수 있습니다. 파이썬 버전을 업데이트 할 때 심볼릭 링크가 업데이트되지 않는 버그처럼 보입니다.


3
당신이 옳았. 나는 오래 전에 MacPython을 설치하고 있음을 내 PATH 변수가 너무 망쳐했다 python지적했다 /Library/Frameworks/Python.framework/Versions/Current/bin. 당연히 그것은 2.6으로 업그레이드되지 않았습니다. 그래서 PATH 변수를 Google에서 찾은 기본 변수로 바꾸었고 이제 시스템에서 MacPython을 제거합니다.
— SBSTN September

@ SBSTN 같은 문제가 있습니다 (파이썬 경로가 가리키는 /Library/Frameworks/Python.framework/Versions/Current/bin) 어떻게 변경합니까?
— Zach

더 이상 / Library / Frameworks / Python *이 없어서 / code / bin / python이 다른 곳을 가리 키지 않기 때문에 Xcode4에서는 작동하지 않습니다. 어떤 아이디어? MacPorts는 솔루션이지만 설치하고 싶지 않습니다.
— Alex

Xcode 4를 설치했는데 여전히 설명대로 작동합니다. /usr/bin/python링크가 아닌 실행 파일입니다. /usr/bin/python2.6를 가리키는 링크입니다 ../../System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6. Python 실행 파일이 있다고 가정하면 /System/LibraryXcode의 버전 / 설치 여부와 상관없이 사용 가능해야합니다.
— Nate

이것은 사람들이 요구하는 것을하지 않습니다. 왜 대답인지 잘 모르겠습니다.
— 010110110101 2019 년

12

Mac 포트를 사용하는 것이 좋습니다 ...

파이썬을 병렬로 사용할 수있는 python_select라는 패키지가 있습니다. 따라서 아직 설치되지 않은 경우 먼저 Mac 포트를 설치하십시오.

먼저 python_select 패키지를 설치하십시오 :

sudo port install python_select

이미 시스템에서 사용 가능한 파이썬 배포판을 확인할 수 있습니다. 다음 명령을 실행하십시오.

port select --list python     (MacPorts 2.x)
python_select -l              (MacPorts 1.x)

제 경우에는 기본적으로 Snow Leopard :와 함께 제공되는 적어도 파이썬 버전을 인쇄했습니다 python26-apple.

port select --show python     (MacPorts 2.x)
python_select -s              (MacPorts 1.x)

현재 선택된 버전을 표시합니다 (예 :) python26-apple. 이 패키지는 Mac과 잘 어울립니다. 더 많은 옵션 문제

port select                   (MacPorts 2.x)
python_select -h              (MacPorts 1.x)

포트 저장소에서 사용 가능한 파이썬 버전을 검색 할 수있는 것보다 :

port search python

이것은 긴 목록을 사용할 수있는 파이썬을 생성합니다.

원하는 패키지를 설치하려면, 예를 들어 python 2.4를 실행하십시오 :

sudo port install python24

이제 python_select -s새로 설치된 파이썬도 표시됩니다. Python 2.4 문제로 전환하려면

sudo port select --set python python24  (MacPorts 2.x)
sudo python_select python24             (MacPorts 1.x)

이 명령은 쉘간에 지속됩니다.


5

bash를 사용한다고 가정하면 다음을 입력하십시오.

% type -a python

PATH의 모든 "python"실행 파일, 별칭, 셸 내장 (아마도 없음) 또는 bash 함수가 표시됩니다.

이것은 여기서 무슨 일이 일어나고 있는지 더 잘 식별하는 데 도움이됩니다.


3

원하는 버전에 대한 심볼릭 링크를 만들려고합니다.

cd /Library/Frameworks/Python.framework/Versions 
sudo rm Current 
sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6 Current

그러면 기본 Python 버전에 대한 현재 포인터가 제거되고 2.6 버전으로 설정됩니다.


1
이것은 내가 한 것과 비슷합니다. 그러나 대신 링크를 / usr / bin에 넣고 "python"(Apple이 넣은 이전 "python"실행 파일을 재정의 함)이라고했습니다. 따라서 : sudo ln -s /path/to/2.7 /usr/bin/python. 이것이 Linux에서 수행되는 방식이며 의미가 있습니다.
— Nacht

0

이상적이지 않지만 (IMO) python내에서 찾는 모든 앱을 수정 했습니다 /usr/local/bin/.

sudo cp /usr/local/bin/python3 /usr/local/bin/python

물론 최신 Python 버전을 설치 한 후.


이것은 정말 나쁜 생각입니다. symlink를 사용하는 것은 이해할 수 있지만 바이너리를 앞뒤로 복사하는 것은 좋은 생각이 아닙니다.
— Jakuje

나는 터미널에 python을 입력하고 Python3.x를 가리키고 싶습니다.
— AGDM
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.