¿Es posible utilizar solicitudes en Ironpython 2.7.5?

He instalado exitosamente pip en ironpython. Pero cuando bash instalar solicitudes con “ipy.exe -X: Marcos -m pip instale las solicitudes” en una consola de administrador, obtengo lo siguiente:

------------------------------------------------------------ C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\__main__.py run on 02/02/16 16:13:53 Downloading/unpacking html5lib Getting page https://pypi.python.org/simple/html5lib/ Cleaning up... Removing temporary dir c:\users\panta\appdata\local\temp\pip_build_panta... Exception: Traceback (most recent call last): File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\basecommand.py", line 122, in main status = self.run(options, args) File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\commands\install.py", line 278, in run requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\req.py", line 1183, in prepare_files url = finder.find_requirement(req_to_install, upgrade=self.upgrade) File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\index.py", line 194, in find_requirement page = self._get_page(main_index_url, req) File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\index.py", line 566, in _get_page return HTMLPage.get_page(link, req, File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\index.py", line 670, in get_page resp = session.get(url, headers={"Accept": "text/html"}) File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\_vendor\requests\sessions.py", line 468, in get return self.request('GET', url, **kwargs) File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\download.py", line 237, in request return super(PipSession, self).request(method, url, *args, **kwargs) File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\_vendor\requests\sessions.py", line 456, in request resp = self.send(prep, **send_kwargs) File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\_vendor\requests\sessions.py", line 559, in send r = adapter.send(request, **kwargs) File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\_vendor\requests\adapters.py", line 317, in send resp = conn.urlopen( File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\_vendor\requests\packages\urllib3\connectionpool.py", line 491, in urlopen httplib_response = self._make_request(conn, method, url, File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\_vendor\requests\packages\urllib3\connectionpool.py", line 291, in _make_request conn.request(method, url, **httplib_request_kw) File "C:\Program Files (x86)\IronPython 2.7\Lib\httplib.py", line 955, in request self._send_request(method, url, body, headers) File "C:\Program Files (x86)\IronPython 2.7\Lib\httplib.py", line 989, in _send_request self.endheaders(body) File "C:\Program Files (x86)\IronPython 2.7\Lib\httplib.py", line 951, in endheaders self._send_output(message_body) File "C:\Program Files (x86)\IronPython 2.7\Lib\httplib.py", line 811, in _send_output self.send(msg) File "C:\Program Files (x86)\IronPython 2.7\Lib\httplib.py", line 773, in send self.connect() File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\_vendor\requests\packages\urllib3\connection.py", line 197, in connect match_hostname(self.sock.getpeercert(), File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\pip\_vendor\requests\packages\urllib3\packages\ssl_match_hostname\_implementation.py", line 88, in match_hostname for key, value in sub: ValueError: too many values to unpack 

Entonces, ¿hay alguna forma de instalar solicitudes en ironpython ahora que admita pip? Intenté usar (en la consola del administrador):

  • ipy.exe -X: marcos -m pip solicitudes de instalación
  • ipy.exe -X: FullFrames -m pip instalar solicitudes
  • ipy.exe -m pip solicitudes de instalación
  • ipy.exe -X: solicitudes de instalación de Scripts \ pip2.7.exe de marcos
  • ipy.exe -X: solicitudes de instalación de FullFrames Scripts \ pip2.7.exe
  • ipy.exe -X: solicitudes de instalación de FullFrames Scripts \ pip2.exe
  • ipy.exe -X: solicitudes de FullFrames Scripts \ easy_install-2.7.exe

Y cuando bash “ipy.exe -X: FullFrames -m easy_install pedidos” obtengo:

 C:\Program Files (x86)\IronPython 2.7\Lib\weakref.py:1: DeprecationWarning: object.__init__() takes no parameters for type KeyedRef """Weak reference support for Python. Searching for requests Reading https://pypi.python.org/simple/requests/ Best match: requests 2.9.1 Downloading https://pypi.python.org/packages/source/r/requests/requests-2.9.1.tar.gz#md5=0b7f480d19012ec52bab78292efd976d Processing requests-2.9.1.tar.gz Writing c:\users\panta\appdata\local\temp\easy_install-mbdcgv\requests-2.9.1\setup.cfg Running requests-2.9.1\setup.py -q bdist_egg --dist-dir c:\users\panta\appdata\local\temp\easy_install-mbdcgv\requests-2.9.1\egg-dist-tmp-rzrv6w warning: build_py: byte-compiling is disabled, skipping. warning: install_lib: byte-compiling is disabled, skipping. warning: easy_install: byte-compiling is disabled, skipping. 

Y crea la carpeta C: \ Users \ panta \ AppData \ Local \ Temp \ easy_install-mbdcgv \ needs-2.9.1 con setup.py pero cuando bash ejecutarlo, aparece el mensaje “No se suministran comandos”. Entonces, ¿hay una manera de importar solicitudes en ironpython 2.7.5?

EDIT: Ahora con easy_install “funcionó” pero cuando bash “importar solicitudes” recibo lo siguiente:

 >>> import requests Traceback (most recent call last): File "", line 1, in  File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\requests-2.9.1-py2.7.egg\requests\__init__.py", line 53, in  File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\requests-2.9.1-py2.7.egg\requests\packages\__init__.py", line 27, in  File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\requests-2.9.1-py2.7.egg\requests\packages\urllib3\__init__.py", line 8, in  File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\requests-2.9.1-py2.7.egg\requests\packages\urllib3\connectionpool.py", line 34, in  File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\requests-2.9.1-py2.7.egg\requests\packages\urllib3\packages\six.py", line 330, in  File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\requests-2.9.1-py2.7.egg\requests\packages\urllib3\packages\six.py", line 320, in exec_ AttributeError: 'module' object has no attribute '_getframe' 

Por lo tanto, no hay módulo de solicitudes para ironpython?

Desafortunadamente, las six bibliotecas utilizadas por urllib3 (a su vez utilizadas por requests ) no son compatibles con IronPython. Consulte el número 135 en el rastreador de six proyectos, que puede tener una solución alternativa.

Aparentemente, eso es lo único que se opone a la compatibilidad con IronPython, consulte el problema n. ° 2324 en el rastreador de problemas de requests .

Probablemente podría hacerlo funcionar reemplazando la definición de exec_() con llamadas directamente a exec() , en el módulo six . urllib3 realidad no usa ninguna llamada a six.exec_() todos modos, y exec() funciona bien en el código de Python 2.

Creo que funciona al menos para casos triviales.

Mi comando de instalación exacto es:

 ipy.exe -X:Frames -m pip install --user requests 

Y la sesión de ejemplo justo después:

 c:\cygwin64\home\rejap>ipy -X:Frames IronPython 2.7.5 (2.7.5.0) on .NET 4.0.30319.42000 (32-bit) Type "help", "copyright", "credits" or "license" for more information. >>> import requests >>> r=requests.get('http://google.com') C:\Users\rejap\AppData\Roaming\Python\IronPython27\site-packages\requests\packages\urllib3\connectionpool.py:1: DeprecationWarning: object.__new__() takes no parameters from __future__ import absolute_import >>> r  >>>