복붙노트

[PYTHON] Mac OS X에서 파이썬을 제어하기 - 환경과 라이브러리 설정하기

PYTHON

Mac OS X에서 파이썬을 제어하기 - 환경과 라이브러리 설정하기

우분투 리눅스에서 파이썬으로 시작한 후, 필자는 지금 Mac OS X 10.6에서의 지속적인 작업을 잘 해왔습니다. 불행히도 나는 파이썬이 어떻게 거기에 설치되었는지에 대해주의를 기울이지 않았다.

이제 저는 2.7과 3.2를 준비하고 있습니다. 나는 사물의 우연한 상태에 만족하지 않습니다. 그렇다면 코드와 라이브러리를 구성하는 가장 좋은 방법은 무엇입니까? 그리고 Mac을 어떻게 제출해야합니까?

나는 pip를 계속 사용하고 싶지만 어떤 버전의 라이브러리가 설치되고 접근 가능한지에 대한 더 많은 제어 나 최소한의 이해를 원합니다. : pip를 통해 py.test를 설치하는 데 문제가있었습니다. 2.6.1 파이썬이 아닌 2.6.1 파이썬에서로드 할 수 있습니다. MacPorts에는 python_select가 있지만 너무 도움이되지 않습니다.

reason: chris$ python_select -l
Available versions:
current none python26 python26-apple

필자가 요청한 대부분의 Python 사용자는 MacPorts를 사용하지 않습니다. MacPorts는별로 좋아하지 않지만, Python.org의 Mac Python을 사용합니다. 나는 또한 virtualenv를 체계적으로 사용하라는 권고를 들었으므로 실제적인 소개로 연결되는 링크는 무엇인가?

해결법

  1. ==============================

    1.virutalenv는 훌륭한 도구이며 대부분의 플랫폼에서 여러 개의 Python 인스턴스를 관리하는 데 매우 유용합니다. 그러나 Mac OS X에서는 프레임 워크 빌드를 사용하면 동일한 주요 버전의 Python을 여러 인스턴스에 접하는 것이 일반적이기 때문에 상황이 더 복잡합니다. 먼저 virtualenv를 탐색하기 전에 Mac OS X에서 프레임 워크 설치를 관리하는 방법을 이해하고 익숙해지는 것이 좋습니다.

    virutalenv는 훌륭한 도구이며 대부분의 플랫폼에서 여러 개의 Python 인스턴스를 관리하는 데 매우 유용합니다. 그러나 Mac OS X에서는 프레임 워크 빌드를 사용하면 동일한 주요 버전의 Python을 여러 인스턴스에 접하는 것이 일반적이기 때문에 상황이 더 복잡합니다. 먼저 virtualenv를 탐색하기 전에 Mac OS X에서 프레임 워크 설치를 관리하는 방법을 이해하고 익숙해지는 것이 좋습니다.

    "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/ - SRSLY?"

    예, 파이썬 Mac OS X 프레임 워크 빌드의 기본 위치입니다. Mac OS X의 Python 배포자 대부분은 여러 버전을 지원하고 특정 Python 인스턴스 용으로 설치된 모든 사이트 패키지를 한 곳에서 함께 유지하기 쉽기 때문에 일반적으로 다른 루트를 사용하는 프레임 워크 빌드를 사용합니다.

    Mac OS X 10.6의 경우, Apple은 Python 2.6 (/System/Library/Frameworks/Python.framework에 뿌리를두고 /usr/bin/python2.6에 심볼릭 링크 됨)과 Python 2.5 (Mac OS X 10.5와의 호환성을 위해 - 그것이 /usr/bin/python2.5입니다). python.org Mac OS X 설치 프로그램은 /Library/Frameworks/Python.framework에 설치됩니다. MacPorts는 /opt/local/Library/Frameworks/Python.framework를 사용합니다.

    프레임 워크에는 bin 디렉토리 (프레임 워크의 ../Versions/x.x/bin)가 있습니다. 이것은 일반적으로 패키지 스크립트가 설치되는 기본 위치입니다. 또한 인터프리터 바이너리에 대한 심볼릭 링크가있는 곳이기도합니다.

    다음은 여러 버전의 Python이 설치된 python.org 스타일의 프레임 워크입니다.

    $ cd /Library/Frameworks/Python.framework/Versions/
    $ ls -l
    total 8
    drwxrwxr-x  8 root  admin  340 Dec 23  2008 2.5/
    drwxrwxr-x  8 root  admin  340 Aug 10 21:42 2.6/
    drwxrwxr-x  8 root  admin  340 Jul  3 12:24 2.7/
    drwxrwxr-x  7 root  admin  306 Mar 23 17:42 3.1/
    drwxrwxr-x  7 root  admin  306 Aug 10 22:14 3.2/
    lrwxr-xr-x  1 root  admin    3 Aug 10 21:47 Current@ -> 2.6
    $ cd 2.6
    $ ls -l
    total 7776
    lrwxr-xr-x  1 root  admin       17 Aug 10 21:47 Headers@ -> include/python2.6
    drwxrwxr-x  3 root  admin      102 Aug 10 21:42 Mac/
    -r-xrwxr-x  1 root  admin  3973552 Aug 10 21:41 Python*
    drwxrwxr-x  4 root  admin      170 Aug 10 21:48 Resources/
    drwxrwxr-x  2 root  admin      578 Aug 12 15:19 bin/
    drwxrwxr-x  3 root  admin      102 Aug 10 21:42 include/
    drwxrwxr-x  3 root  admin      646 Aug 10 21:43 lib/
    drwxrwxr-x  3 root  admin      102 Aug 10 21:41 share/
    $ ls -l bin
    total 264
    -rwxrwxr-x  1 root  admin    150 Aug 10 21:41 2to3*
    -rwxr-xr-x  1 nad   admin    360 Aug 12 15:19 easy_install*
    -rwxr-xr-x  1 nad   admin    368 Aug 12 15:19 easy_install-2.6*
    lrwxr-xr-x  1 root  admin      7 Aug 10 21:47 idle@ -> idle2.6
    -rwxrwxr-x  1 root  admin    138 Aug 10 21:41 idle2.6*
    lrwxr-xr-x  1 root  admin      8 Aug 10 21:47 pydoc@ -> pydoc2.6
    -rwxrwxr-x  1 root  admin    123 Aug 10 21:41 pydoc2.6*
    lrwxr-xr-x  1 root  admin      9 Aug 10 21:47 python@ -> python2.6
    lrwxr-xr-x  1 root  admin     16 Aug 10 21:47 python-config@ -> python2.6-config
    -rwxrwxr-x  1 root  admin  29584 Aug 10 21:43 python2.6*
    -rwxrwxr-x  1 root  admin   1463 Aug 10 21:42 python2.6-config*
    lrwxr-xr-x  1 root  admin     10 Aug 10 21:47 pythonw@ -> pythonw2.6
    -rwxrwxr-x  1 root  admin  29584 Aug 10 21:43 pythonw2.6*
    lrwxr-xr-x  1 root  admin     11 Aug 10 21:47 smtpd.py@ -> smtpd2.6.py
    -rwxrwxr-x  1 root  admin  18272 Aug 10 21:41 smtpd2.6.py*
    

    다음은 추가 사이트 패키지를 포함한 MacPorts 저장소입니다.

    $ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.6
    $ ls -l bin
    total 952
    -rwxr-xr-x  2 root  wheel    160 Jul 15 01:56 2to3*
    -rwxr-xr-x  2 root  wheel   1541 Jun  8 19:59 apirst2html.py*
    -rwxr-xr-x  2 root  wheel    363 Oct  5  2009 bdist_mpkg*
    [...]
    -rwxr-xr-x  2 root  wheel    211 Jun  2 12:45 django-admin.py*
    -rwxr-xr-x  2 root  wheel    410 Jul 15 17:30 easy_install*
    -rwxr-xr-x  2 root  wheel    418 Jul 15 17:30 easy_install-2.6*
    [...]
    -rwxr-xr-x  2 root  wheel    368 Jun 24 02:00 pip*
    -rwxr-xr-x  1 root  wheel    342 Sep 18  2009 pkginfo*
    [...]
    lrwxr-xr-x  1 root  wheel      9 Jul 15 01:58 python@ -> python2.6
    lrwxr-xr-x  1 root  wheel     16 Jul 15 01:58 python-config@ -> python2.6-config
    -rwxr-xr-x  2 root  wheel  24932 Jul 15 01:57 python2.6*
    -rwxr-xr-x  2 root  wheel   1473 Jul 15 01:57 python2.6-config*
    [...]
    

    python.org 인스톨러 또는 MacPorts를 사용하여 2.7 또는 3.1 Python을 설치하면 / Library / Frameworks 또는 / opt / local / Library / Frameworks 아래에 뿌리 내리고 다른 버전과 함께 사용할 수 있습니다. 프레임 워크 설치를 성공적으로 사용하려면 쉘 PATH를 관리해야합니다. 특히, 사용하고자하는 Python의 프레임 워크 bin 디렉토리가 PATH에 있는지 확인해야합니다. 따라서 MacPorts의 경우 ~ / .bash_profile에 다음과 같은 내용이 있습니다.

    export PATH="/opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin:/opt/local/bin:$PATH
    

    또는 python.org 설치 프로그램의 경우 :

    export PATH="/Library/Frameworks/Python.framework/Versions/2.6/bin:$PATH
    

    또한, 일반적으로 여러분이 사용하는 각 Python 인스턴스에 대해 선호하는 Python 패키지 관리 애드온 (pip 또는 distribute 또는 setuptools의 easy_install 명령과 같은)의 별도 버전을 설치해야합니다. 각각은 기본 스크립트 디렉토리 (즉, 프레임 워크 bin 디렉토리)에 설치됩니다. MacPorts는 패키지 버전을 설치할 때 자동으로 처리합니다 (sudo 포트 설치 py26-pip 또는 sudo 포트 py31-distribute 설치). Apple은 Pythons를 위해 / usr / bin에 easy_install 링크를 제공하고 / Library / Python에 패키지를 설치합니다. Python의 인스턴스에 적합한 easy_install 또는 pip를 사용해야합니다. 인스턴스의 프레임 워크 bin 디렉토리가 PATH의 맨 처음에 있는지 확인하면됩니다.

    MacPorts를 사용하는 경우 python_select 명령을 사용하여 / opt / local / bin / python이 가리키는 Python 인스턴스를 관리 할 수 ​​있습니다. 그런 다음 / opt / local / bin이 PATH 목록의 앞부분에 파이썬이있는 다른 디렉토리보다 먼저 표시되면 기본 파이썬이 무엇인지를 결정합니다. 하지만 프레임 워크 bin 디렉토리를 추가하여 PATH를 관리해야하므로 python_select가 일반적으로 유용하지는 않습니다.

    MacPorts (또는 이와 유사한 광범위한 기반의 배포자)를 사용하는 또 다른 장점은 Mac OS X에 포함되어 있지 않은 타사 C 라이브러리를 빌드하고 연결하는 데 지저분한 세부 사항을 처리하는 등 많은 인기있는 Python 패키지를 사용할 수 있다는 것입니다. 예를 들어 MySQLdb와 PIL 패키지는 MySQL 클라이언트 라이브러리와 libjpeg 때문에 Mac OS X에서 종종 걸림돌이됩니다. 그러나 MacPorts는 모든 것을 올바르게하는 것이 훨씬 쉽습니다. 하지만 당신은 직접 MacPorts (sudo port py26-pil) 또는 pip (sudo pip install pil) 또는 easy_install을 사용하여 직접 설치하거나 소스를 다운로드 할 수 있습니다 (sudo python setup.py ..). ). 그리고 커버 아래에있는 모든 사람들이 파이썬의 Distutils를 사용하여 더러운 작업을 수행하기 때문에, 이러한 모든 메소드는 일반적으로 주어진 파이썬 인스턴스에 대해 동일한 위치에 패키지의 파일을 설치하게됩니다.

  2. ==============================

    2.난 그냥 'pythonbrew'를 사용했는데, 10.6.7의 재고 시스템 Python으로 easy_installed했다. 나는 post_ compile 테스트를 무시하기 위해 '--force'옵션을 사용해야했다. test_dl과 test_readline (빠른 google 체크는 실제 문제가 아닌 것으로 보여짐)로 실패했다.

    난 그냥 'pythonbrew'를 사용했는데, 10.6.7의 재고 시스템 Python으로 easy_installed했다. 나는 post_ compile 테스트를 무시하기 위해 '--force'옵션을 사용해야했다. test_dl과 test_readline (빠른 google 체크는 실제 문제가 아닌 것으로 보여짐)로 실패했다.

    $ sudo easy_install pythonbrew
    

    설치가 완료되면 자세한 내용을 보려면 다음을 실행하십시오.

    $ pythonbrew_install
    

    이제는 시스템 설치를 방해하지 않고 멋지게 고립 된 python-2.7.1 설치가되었습니다.

  3. ==============================

    3.파이썬 가이드 사람들처럼 Homebrew를 사용하는 것이 좋습니다.

    파이썬 가이드 사람들처럼 Homebrew를 사용하는 것이 좋습니다.

    다음은 시작 안내서의 환상적인 단계입니다.

    http://docs.python-guide.org/en/latest/starting/install/osx/#install-osx

  4. from https://stackoverflow.com/questions/3487664/getting-python-under-control-on-mac-os-x-setting-up-environment-and-libraries by cc-by-sa and MIT license