2015-01-26 3 views
1

파이썬의 요청 라이브러리 bundles the chardet and urllib3 packages.urllib3의 요청 된 버전을 쉽게 업그레이드 할 수 있습니까?

이렇게하면 번들 버전에 버그가있을 수 있습니다. Requests가 urllib3의 다른 버전을 사용하는 깨끗하고 쉬운 방법이 있는지 궁금합니다. 예를 들어, 내가 pip install requests urllib3 일 수 있으며 그 요청을 자동으로 사용할 수 있습니까?

certifi이 설치되어있는 경우 요청이 automatically uses certifi 인 것을 알고 있지만 urllib3과 같은 설명서를 찾을 수 없습니다.

그렇지 않으면 내가 보는 옵션은 다음과 같습니다

  1. GET 요청은 urllib3의 최신 버전을 병합 요청
  2. 포크 내 자신의 버전 및 그 용도에 관한 것이다.

답변

3

귀하가 설명한 옵션은 오늘 현재까지 정확합니다.

urllib3의 시스템 버전을 사용하는 요청 설정에 관한 이야기가 있지만 구현되지 않았다고 생각합니다. 일부 Linux 배포판의 패키지는 실제로 urllib3의 시스템 버전을 사용하도록 Request를 패치하고 (그에 따라 적절히 고정합니다), 드물지 않은 요청이 아닙니다.

설명서의 urllib3, it's outlined in the Security section과 함께 certifi를 사용하는 경우. 주요 내용은 다음과 같습니다.

import urllib3 
import certifi 

http = urllib3.PoolManager(
    cert_reqs='CERT_REQUIRED', # Force certificate check. 
    ca_certs=certifi.where(), # Path to the Certifi bundle. 
) 

# You're ready to make verified HTTPS requests. 
try: 
    r = http.request('GET', 'https://example.com/') 
except urllib3.exceptions.SSLError as e: 
    # Handle incorrect certificate error. 
    ... 
+0

urllib3의 시스템 버전을 사용하여 요청 설정에 대한 토론을 할 수 있습니까? 나중에 참조 할 수 있도록 RHEL은 번들로 제공되는 urllib3 및 chardet을 시스템 버전에 연결하는 예입니다. –

+0

https://github.com/kennethreitz/requests/issues?q=vendored에서 https://github.com/kennethreitz/requests/pull/1812 및 https://github.com/kennethreitz와 관련된 몇 가지 관련 토론 자료를 얻을 수 있습니다./requests/issues/1811을 예로들 수 있습니다. 두 시나리오를 모두 지원한다고 제안한 구체적인 의견을 찾을 수 없습니다. – shazow