繁体   English   中英

在树莓派上运行puppeteer时出现OSError

[英]OSError when running puppeteer on raspberry pi

我试图将RP用作执行某些Web自动化任务的服务器,所以我安装了python 3.7pypputeer (适用于Googlel的puppeteer的Python版本)。 问题是我的代码在OSX上流畅运行,在PI上出现以下错误:

    Traceback (most recent call last):
  File "main.py", line 45, in <module>
    asyncio.get_event_loop().run_until_complete(main())
  File "/usr/local/lib/python3.7/asyncio/base_events.py", line 568, in run_until_complete
    return future.result()
  File "main.py", line 16, in main
    browser = await launch(headless=True)
  File "/usr/local/lib/python3.7/site-packages/pyppeteer/launcher.py", line 311, in launch
    return await Launcher(options, **kwargs).launch()
  File "/usr/local/lib/python3.7/site-packages/pyppeteer/launcher.py", line 169, in launch
    **options,
  File "/usr/local/lib/python3.7/subprocess.py", line 756, in __init__
    restore_signals, start_new_session)
  File "/usr/local/lib/python3.7/subprocess.py", line 1499, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: '/home/pi/.local/share/pyppeteer/local-chromium/575458/chrome-linux/chrome'

该代码仅以无头模式启动铬:

async def main():
    browser = await launch(headless=True)
    page = await browser.newPage()
    await page.goto(URL_FOR_SCRAPING)

asyncio.get_event_loop().run_until_complete(main())

我试图从这里安装所有Debian依赖项,还让pypputeer再次像第一次安装pypputeer安装chromium。 但似乎没有任何方法可以解决此错误。 还有这个Github帖子似乎没有帮助。 有谁知道该怎么办?

显然,解决方案是将代码中的铬路径重定向到您知道有效的某些版本的铬。 所以

whereis chromium-browser

接着:

browser = await launch(headless=True, executablePath='/usr/bin/chromium-browser') # where your chromium was, in my case /usr/bin/...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM