2014-10-22 1 views
2

이 모든 것은 Python 3 용 요청 라이브러리를 설치하기 시작할 때 시작되었습니다 (Python 2.7.5 (OSX Mavericks on brew install python 설치) 및 3.4.2 (brew install python3 설치) 내가보고 내가 pip3 --version합니다 (pip3 명령에 관련 또는 무엇이든)를 실행하면이 :.SyntaxError와 함께 'pip3 --version'이 실패했습니다.

$ pip3 --version 
Traceback (most recent call last): 
    File "/usr/local/bin/pip3", line 7, in <module> 
    from pip import main 
    File "/usr/local/lib/python3.4/site-packages/pip/__init__.py", line 11, in <module> 
    from pip.vcs import git, mercurial, subversion, bazaar # noqa 
    File "/usr/local/lib/python3.4/site-packages/pip/vcs/mercurial.py", line 9, in <module> 
    from pip.download import path_to_url 
    File "/usr/local/lib/python3.4/site-packages/pip/download.py", line 22, in <module> 
    from pip._vendor import requests, six 
    File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/__init__.py", line 53, in <module> 
    from .packages.urllib3.contrib import pyopenssl 
    File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/contrib/pyopenssl.py", line 49, in <module> 
    from ndg.httpsclient.ssl_peer_verification import SUBJ_ALT_NAME_SUPPORT 
    File "/usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/ndg/httpsclient/ssl_peer_verification.py", line 17 
    except ImportError, e: 
        ^
SyntaxError: invalid syntax 

내가 파이썬 2.7.5 버전을 실행하면 나는이 참조 :

$ pip --version 
pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg (python 2.7) 

을 단지 정신적 인 목적을 위해 여기에 들어가면 언제 볼 수 있겠습니까? teractive 통역 :

$ python3 
Python 3.4.2 (default, Oct 19 2014, 17:52:17) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.51)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> exit() 

$ python 
Python 2.7.5 (default, Mar 9 2014, 22:15:05) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> exit() 

때문에 양조가 파이를 설정하는 방법의 pip3 업데이트와 관련된 다른 답변의 많은 내가 같은 오류가 제공이 표창 pip3 install --upgrade pip와 pip3를 업데이트하는 것이 좋습니다, 또는 내가 easy_install -U pip 사용하지만, 그것을 Python 2.7.5 버전 만 업데이트합니다 (easy_install3은 없습니다). 어떤 아이디어?

+0

pip3 \'--version' 같은 오류를 생성하는'python3 \'이 있습니까? – hobbs

+0

그냥 테스트하고 예. 또한'brew uninstall python3'을 실행하고 다시 설치하려고했습니다. –

+1

어쨌든, Python 3.x 사이트 패키지에 Python 2.x 버전의 (아마도'requests'?) 버전을 설치할 수있었습니다.'pip'가 사용할 수있는 경우 사용할 제 3 자 패키지가 있으며, 그 중 하나가 사용 가능하지만 깨진 경우'pip'가 깨질 수 있습니다. – abarnert

답변

3

근본적인 문제는 어떻게 든 파이썬 2.x 전용 패키지가 3.x 사이트 패키지에 설치되어 있다는 것입니다.

는 근본적인 실제로 두 개의 서로 다른 파이썬 2.7 설치 (애플의와 브루의가) 당신은뿐만 아니라 3.X에 2.7 패키지를 가지고 어떻게 함께 할 수있는 뭔가를 할 수있는, 서로 교차을 ...있어

어쨌든 이것이 pip을 깨뜨린 이유는 pip에는 가져 오기를 시도하는 다양한 선택 종속성이 있으며 그 중 일부는 동일하게하는 등 궁극적으로 pipndg-httpsclient 패키지를 가져오고 있습니다.

나는 그 패키지를 어떻게 얻었는지 잘 모르겠습니다. 표준 Homebrew 3.x는 두 개의 추가 사이트 패키지 디렉토리 (python3을 실행 한 후 이 설치되는 곳을 벗어나서 보이는 모든 장소, 즉 stdlib와 사이트 모두를 보려면 import sys; print(sys.path)을 실행)를 찾습니다.

이 경우, 어떻게 든 ndg-httpsclient의 2.x 버전을 /usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework/Versions/3.4/lib/‌​python3.4/site-packages에 설치했습니다.

pip과 함께 설치하지 않았으므로 처음에는 pip을 실행할 수 없으므로 더 많은 것을 요점을 말합니다. 단지 pip uninstall 일뿐입니다. 따라서 :

rm -rf /usr/local/Cellar/python3/3.4.2_1/Frameworks/Python.framework/Versions/3.4/lib/‌​python3.4/site-packages/ndg* 

이렇게하면이 패키지에 의존하는 다른 패키지가 손상 될 수 있습니다. 일을 마치면 pip3 list을 사용하여 설치 한 모든 사이트 패키지를보고 테스트 해 볼 수 있습니다. 당신이 편집증하려면이 같은 수행 유사하게 정리

$ pip3 list > mypackages 
$ rm -rf <each site-package directory> 
$ brew uninstall python3 
$ brew install python3 
$ pip3 install -r mypackages 

은 당신이 할 수 있습니다 당신의 브루 2.7 (또는 그냥 스크랩 만 난 당신이 실행중인 확신하기 때문에 특히 Apple's를 사용 애플의 어쨌든), 애플 2.7의 사이트 패키지 (물론 파이썬 자체는 제거 할 수 없기 때문에)가있다.

관련 문제