Sam & Max » request http://sametmax.com Du code, du cul Sat, 07 Nov 2015 10:56:13 +0000 en-US hourly 1 http://wordpress.org/?v=4.1 Requests fait partie de la lib standard ! 3 http://sametmax.com/requests-fait-partie-de-la-lib-standard/ http://sametmax.com/requests-fait-partie-de-la-lib-standard/#comments Thu, 29 May 2014 05:07:29 +0000 http://sametmax.com/?p=10360 Enfin, presque :)

J’étais en train d’installer en vieux requirements.txt quand soudain :

  File "
 
/usr/lib/python2.7/dist-packages/pip/download.py", line 23, in <module>
    from requests.adapters import BaseAdapter
ImportError: No module named adapters

Wut ?

Mon erreur était due à une version de requests trop ancienne. J’upgrade et ça remarche. Mais ça m’a intrigué :

⟩ grin "requests"  /usr/lib/python2.7/dist-packages/pip/
/usr/lib/python2.7/dist-packages/pip/download.py:
   22 : import requests, six
   23 : from requests.adapters import BaseAdapter
   24 : from requests.auth import AuthBase, HTTPBasicAuth
   25 : from requests.compat import IncompleteRead
   26 : from requests.exceptions import InvalidURL, ChunkedEncodingError
   27 : from requests.models import Response
   28 : from requests.structures import CaseInsensitiveDict
  120 :         # Store the new username and password to use for future requests
  182 :         # We only work for requests with a host of localhost
  211 : class PipSession(requests.Session):
  548 :         except requests.HTTPError as exc:
/usr/lib/python2.7/dist-packages/pip/index.py:
   17 : import html5lib, requests, pkg_resources
   18 : from requests.exceptions import SSLError
   80 :         # The Session we'll use to make requests
  689 :         except requests.HTTPError as exc:
  692 :         except requests.ConnectionError as exc:
  697 :         except requests.Timeout:

Je regarde le code source github, qui diffère de celui de mon système :

from pip._vendor.requests.adapters import BaseAdapter, HTTPAdapter
from pip._vendor.requests.auth import AuthBase, HTTPBasicAuth
from pip._vendor.requests.compat import IncompleteRead
from pip._vendor.requests.exceptions import ChunkedEncodingError

Mais ça reste bien requests.

Donc, si vous avez la 3.4, vous avez pip installé, qui maintenant embed requests. Donc Python 3.4 vient forcément avec requests \o/

Si vous supportez uniquement cette plateforme, vous pouvez faire :

try:
    import requests
except ImportError:
    import pip._vendor.requests as requests

Et bénéficier de requests sans rien installer.

Tout ça pour ça.

]]>
http://sametmax.com/requests-fait-partie-de-la-lib-standard/feed/ 3