복붙노트

[PYTHON] Python PIP Install throws TypeError : - = : 'Retry'및 'int'에 대해 지원되지 않는 피연산자 유형이 있습니다.

PYTHON

Python PIP Install throws TypeError : - = : 'Retry'및 'int'에 대해 지원되지 않는 피연산자 유형이 있습니다.

Python 2.7.11+를 사용하는 우분투 16.04 시스템의 모든 모듈에 pip 설치를 사용하면이 오류가 발생합니다.

TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

핍이 뭐가 잘못 됐어? 필요한 경우 어떻게 다시 설치할 수 있습니까?

업데이트 : 전체 추적이 아래에 있습니다.

sunny@sunny:~$ pip install requests
Collecting requests
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 209, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 328, in run
    wb.build(autobuilding=True)
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 748, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 360, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 512, in _prepare_file
    finder, self.upgrade, require_hashes)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 273, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 442, in find_requirement
    all_candidates = self.find_all_candidates(req.name)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 400, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 545, in _get_pages
    page = self._get_page(location)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 648, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 757, in get_page
    "Cache-Control": "max-age=600",
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 480, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 378, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/usr/share/python-wheels/CacheControl-0.11.5-py2.py3-none-any.whl/cachecontrol/adapter.py", line 46, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/adapters.py", line 376, in send
    timeout=timeout
  File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 610, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 228, in increment
    total -= 1
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

해결법

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

    1.우분투는 프리 캄브리아기에서 PIP 버전을 제공하며, 핍 관련 문제를 디버깅하는 데 수 시간을 소비하지 않으려는 경우 업그레이드해야합니다.

    우분투는 프리 캄브리아기에서 PIP 버전을 제공하며, 핍 관련 문제를 디버깅하는 데 수 시간을 소비하지 않으려는 경우 업그레이드해야합니다.

    apt-get remove python-pip python3-pip
    wget https://bootstrap.pypa.io/get-pip.py
    python get-pip.py
    python3 get-pip.py
    

    당신이 관찰 한대로 나는 파이썬 2.x와 3.x 모두에 대한 정보를 포함했다.

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

    2.프록시를 사용하는 경우 설치를 시작하기 전에 몇 가지 추가 구성 단계를 수행해야합니다. http_proxy 환경 변수를 프록시 주소로 설정해야합니다. bash를 사용하면 다음 명령으로이 작업을 수행 할 수 있습니다.

    프록시를 사용하는 경우 설치를 시작하기 전에 몇 가지 추가 구성 단계를 수행해야합니다. http_proxy 환경 변수를 프록시 주소로 설정해야합니다. bash를 사용하면 다음 명령으로이 작업을 수행 할 수 있습니다.

    export http_proxy="http://user:pass@my.site:port/" 
    

    또한

    --proxy=[user:pass@]url:port 
    

    매개 변수. [user : pass @] 부분은 선택 사항입니다.

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

    3.우선이 문제는 네트워크 문제로 인해 발생하며 모든 것을 제거하고 다시 설치해도별로 도움이되지 않습니다. 아마 당신은 프록시 뒤에 있으며,이 경우 프록시를 설정해야합니다.

    우선이 문제는 네트워크 문제로 인해 발생하며 모든 것을 제거하고 다시 설치해도별로 도움이되지 않습니다. 아마 당신은 프록시 뒤에 있으며,이 경우 프록시를 설정해야합니다.

    하지만 제 경우에는 프록시가 아니기 때문에 문제가 발생했습니다. 일반적으로 프록시를 사용하지만 집에서 일할 때는 네트워크 설정에서 프록시를 없음으로 설정합니다.

    하지만 프록시 설정을 제거한 후에도 여전히 동일한 오류가 발생했습니다.

    그래서, 내가 타이핑했을 때.

    env | grep proxy
    

    나는 다음과 같은 것을 발견했다.

    http_proxy=http://127.0.0.1:1234/
    

    그리고 이것이 제가 프록시 설정을 제거했다고 생각할 때에도 여전히 똑같은 오류가 발생하는 이유였습니다.

    이 프록시를 설정 해제하려면 다음을 입력하십시오.

    unset http_proxy
    

    https_proxy와 같은 다른 모든 항목에 대해 동일한 접근 방식을 따르십시오.

  4. ==============================

    4.여기서 일어나는 일은 두 개의 서로 다른 장소 (동일한 코드이지만 다른 이름)로 가져올 때 request / urllib3의 벤더 된 버전이 충돌한다는 것입니다. 그런 다음 네트워크 오류가 발생하면 다시 시도하지 않고 위의 오류와 함께 실패합니다. 이 오류에 대한 자세한 내용은 여기를 참조하십시오.

    여기서 일어나는 일은 두 개의 서로 다른 장소 (동일한 코드이지만 다른 이름)로 가져올 때 request / urllib3의 벤더 된 버전이 충돌한다는 것입니다. 그런 다음 네트워크 오류가 발생하면 다시 시도하지 않고 위의 오류와 함께 실패합니다. 이 오류에 대한 자세한 내용은 여기를 참조하십시오.

    시스템 pip를 사용하는 솔루션은 위의 내용을 참조하십시오.

    Python -m venv (별도로 pip가 설치되어 있어도 / usr / share / python-wheels에서 바퀴를 복사 함)로 만든 virtualenv에서이 문제가 발생하면 "수정"하는 가장 쉬운 방법이 될 것 같습니다 :

    이제 / bin / pip는 urllib3가 판매 된 요청의 설치된 버전을 사용합니다.

  5. ==============================

    5.포트 443이 열려 있지 않습니다. AWS에서 아웃 바운드 연결을 위해 포트 443을 열면 사용자 지정 tcp 포트 443 만 허용합니다 ...

    포트 443이 열려 있지 않습니다. AWS에서 아웃 바운드 연결을 위해 포트 443을 열면 사용자 지정 tcp 포트 443 만 허용합니다 ...

  6. ==============================

    6.pip를 사용하여 패키지 설치시이 오류가 발생했습니다. 나중에 나는 pip가 http_proxy와 https_proxy 변수가 프록시 뒤에서 실행되어야 함을 발견했다. 이 두 가지 환경 변수를 설정하면이 문제가 해결됩니다.

    pip를 사용하여 패키지 설치시이 오류가 발생했습니다. 나중에 나는 pip가 http_proxy와 https_proxy 변수가 프록시 뒤에서 실행되어야 함을 발견했다. 이 두 가지 환경 변수를 설정하면이 문제가 해결됩니다.

    export http_proxy=http://<username>:<passowrd>@<proxy_ip>:<proxy_port>/
    export https_proxy=https://<username>:<passowrd>@<proxy_ip>:<proxy_port>/
    
  7. ==============================

    7.virtualenv myVirtualEnv 명령을 사용하여 virtualenv를 만들려고 할 때이 오류가 발생했습니다. 방금 명령 앞에 sudo를 추가했습니다. 그것은 모든 것을 해결했습니다.

    virtualenv myVirtualEnv 명령을 사용하여 virtualenv를 만들려고 할 때이 오류가 발생했습니다. 방금 명령 앞에 sudo를 추가했습니다. 그것은 모든 것을 해결했습니다.

  8. ==============================

    8.나는 또한이 문제를 가지고 있었다. 처음에는 프록시가 설정되어 정상적으로 작동했습니다. 그런 다음 프록시를 통과하지 않는 네트워크에 연결되었습니다. 설정을 마친 후에 다시 프록시가 작동합니다.

    나는 또한이 문제를 가지고 있었다. 처음에는 프록시가 설정되어 정상적으로 작동했습니다. 그런 다음 프록시를 통과하지 않는 네트워크에 연결되었습니다. 설정을 마친 후에 다시 프록시가 작동합니다.

    unset http_proxy; unset http_prox;  unset HTTP_PROXY; unset HTTPS_PROXY
    
  9. ==============================

    9.ec2 인스턴스에 awscli 도구를 설치하는 동안 비슷한 문제가 발생했습니다. 포트 443의 인바운드 및 아웃 바운드 액세스를 허용하도록 보안 그룹을 변경했으며 이로 인해 문제가 해결되었습니다.

    ec2 인스턴스에 awscli 도구를 설치하는 동안 비슷한 문제가 발생했습니다. 포트 443의 인바운드 및 아웃 바운드 액세스를 허용하도록 보안 그룹을 변경했으며 이로 인해 문제가 해결되었습니다.

  10. ==============================

    10.기이하게도 환경에서 프록시를 제거하고 명령 줄에 추가하면 저에게 효과적입니다. 예를 들어 pip 자체를 업그레이드하려면 다음을 수행하십시오.

    기이하게도 환경에서 프록시를 제거하고 명령 줄에 추가하면 저에게 효과적입니다. 예를 들어 pip 자체를 업그레이드하려면 다음을 수행하십시오.

    env http_proxy= https_proxy= pip install pip --upgrade --proxy 'http://proxy-url:80'
    

    내 문제는 환경에서 프록시를 사용하고있었습니다. 핍은 논쟁에서 오직 하나의 것을 존중하는 것 같습니다.

  11. ==============================

    11.그냥 나를 위해 일한 pip 업그레이드 :

    그냥 나를 위해 일한 pip 업그레이드 :

    pip install - 업그레이드 핍

  12. ==============================

    12.이것이 제가 발견 한이 문제에 대한 해결책입니다.

    이것이 제가 발견 한이 문제에 대한 해결책입니다.

    sudo apt-get clean
    cd /var/lib/apt
    sudo mv lists lists.old
    sudo mkdir -p lists/partial
    sudo apt-get clean
    sudo apt-get update
    
  13. ==============================

    13.해결책:     1. sudo는 python-pip를 제거한다.     2. pip3 설치 pip (또는 get-pip.py로 pip 설치)

    해결책:     1. sudo는 python-pip를 제거한다.     2. pip3 설치 pip (또는 get-pip.py로 pip 설치)

    왜: 이 오류는 apt-get에 의해 설치된 pip 8.0.1에서 발생했습니다. 네트워크가 불안정한 경우에만 발생했습니다.

    apt가 설치된 pip는 다른 방법으로 설치 한 pip를 숨기므로 먼저 apt를 제거해야합니다.

    네트워크 연결을 끊고 pip3 또는 get-pip.py로 설치된 3 가지 버전 8.0.1, 9.0.3, 10.x를 테스트했지만 오류가 발생하지 않았습니다. 그래서, 나는 pip 8.0.1의 단지 적당한 버전이 그 버그를 가지고 있다고 생각합니다. 다른 것들은 괜찮습니다.

  14. ==============================

    14.이것은 내가 프록시 뒤에서 일할 때 일어납니다. 나는이 문제를 간단히 해결한다.

    이것은 내가 프록시 뒤에서 일할 때 일어납니다. 나는이 문제를 간단히 해결한다.

    pip 설치 --proxy http : // proxyAddress : 포트 Package_To_Be_Installed

  15. from https://stackoverflow.com/questions/37495375/python-pip-install-throws-typeerror-unsupported-operand-types-for-retry by cc-by-sa and MIT license