OSError при запуске кукловода на малиновом пи - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь сделать свой RP сервером для некоторых задач веб-автоматизации, поэтому я установил python 3.7 и pypputeer (версия Python для кукловода Googlel).Проблема в том, что мой код, который работает на моем 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 снова установить chromium, как это происходит в первый раз.но ничто, кажется, не решает эту ошибку.Также есть этот пост Github , который, кажется, не является полезным.Кто-нибудь знает, что можно сделать?

1 Ответ

0 голосов
/ 29 декабря 2018

Очевидно, что решение было перенаправить путь хрома в коде на какую-то версию хрома, которая, как вы знаете, работает.поэтому

whereis chromium-browser

, а затем:

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