Python - OSError: [Errno 8] Exec format error: '~.local/share/pyppeteer/local-chromium/575458/

 
Vista:

OSError: [Errno 8] Exec format error: '~.local/share/pyppeteer/local-chromium/575458/

Publicado por juan (3 intervenciones) el 22/01/2019 07:03:37
Estoy atrapado con un error en python (consola ipython). Escribo un código para renderizar javascript mediante el módulo requests_html :


In [36]: from requests_html import HTMLSession


In [37]: session = HTMLSession()


In [38]: r = session.get('http://python-requests.org')


In [39]: r.html.render()


Y me sale el siguiente error :


-----------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-39-7659b856a471> in <module>
----> 1 r.html.render()

/usr/local/lib/python3.6/site-packages/requests_html.py in render(self, retries, script, wait, scrolldown, sleep, reload, timeout, keep_page)
570 return None
571
--> 572 self.session.browser # Automatycally create a event loop and browser
573 content = None
574

/usr/local/lib/python3.6/site-packages/requests_html.py in browser(self)
678 if not hasattr(self, "_browser"):
679 self.loop = asyncio.get_event_loop()
--> 680 self._browser = self.loop.run_until_complete(pyppeteer.launch(headless=True, args=['--no-sandbox']))
681 return self._browser
682

/usr/local/lib/python3.6/asyncio/base_events.py in run_until_complete(self, future)
465 raise RuntimeError('Event loop stopped before Future completed.')
466
--> 467 return future.result()
468
469 def stop(self):

/usr/local/lib/python3.6/site-packages/pyppeteer/launcher.py in launch(options, **kwargs)
309 option with extreme caution.
310 """
--> 311 return await Launcher(options, **kwargs).launch()
312
313

/usr/local/lib/python3.6/site-packages/pyppeteer/launcher.py in launch(self)
167 self.proc = subprocess.Popen( # type: ignore
168 self.cmd,
--> 169 **options,
170 )
171

/usr/local/lib/python3.6/subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)
707 c2pread, c2pwrite,
708 errread, errwrite,
--> 709 restore_signals, start_new_session)
710 except:
711 # Cleanup if the child failed starting.

/usr/local/lib/python3.6/subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session)
1342 if errno_num == errno.ENOENT:
1343 err_msg += ': ' + repr(err_filename)
-> 1344 raise child_exception_type(errno_num, err_msg, err_filename)
1345 raise child_exception_type(err_msg)
1346

OSError: [Errno 8] Exec format error: '~.local/share/pyppeteer/local-chromium/575458/chrome-linux/chrome'


Mi versión de Python : 3.6.3

Mi versión de Sistema Operativo : Ubuntu 16.04.5 LTS Xenial


No tengo ni idea de que se puede tratar. He buscado por internet y no he visto ningún caso como éste.

Sabe alguien solucionarlo ?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

OSError: [Errno 8] Exec format error: '~.local/share/pyppeteer/local-chromium/575458/

Publicado por juan (3 intervenciones) el 22/01/2019 09:58:31
Bueno acabo de ver que tiene que ver con la incompatibilidad del navegador chrome 64 bits en mi sistema linux de 32 bits.

html_requests te instala una versión por defecto de 64 bits, y claro al ejecutarse en mi caso me da error. Habría que ver como hacer para que se ejecute la version de 32 bits, que archivo en concreto y como configurarlo. Me he bajado una version de chrome de 32 bits, pero aún no he podido seguir la investigación por falta de tiempo. La retomaré en otro momento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

OSError: [Errno 8] Exec format error: '~.local/share/pyppeteer/local-chromium/575458/

Publicado por Juan (3 intervenciones) el 04/02/2019 20:23:17
[SOLUCIONADO]

El paquete requests_html ejecuta un navegador headless mediante un módulo llamado Pyppeteer, éste sólo es compatible con la versión de 64 bits de Ubuntu, y no existe tal para la version de 32 bits. Por eso da error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar