Ошибка Seleniumwire с gunicorn и eventlet - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь использовать gunicorn и eventlet с моим веб-приложением Python Flask -SocketIO. Все это работает, за исключением seleniumwire. Когда я сталкиваюсь с маршрутом, который использует seleniumwire, я получаю следующую ошибку:

Exception in thread Selenium Wire Proxy Server:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3.6/socketserver.py", line 232, in serve_forever
    with _ServerSelector() as selector:
  File "/usr/lib/python3.6/selectors.py", line 348, in __init__
    self._poll = select.poll()
AttributeError: module 'select' has no attribute 'poll'

Я думал, что это может иметь какое-то отношение к тому, что seleniumwire не перехватывается в eventlet.monkey_patch (), который я вызываю вверху мой файл, поэтому я хотел попробовать импортировать его с помощью eventlet.import_patched (). Я не могу заставить это работать, хотя. Я могу написать seleniumwire = eventlet.import_patched('seleniumwire'), но seleniumwire.webdriver, естественно, не работает, потому что webdriver - это пакет, а не метод, и я не могу понять версию import_patched из "seleniumwire import webdriver".

Приложение работает нормально, когда я запускаю его без eventlet или gunicorn.

Что вызывает эту ошибку? Если проблема в том, что seleniumwire не зеленый, как мне правильно импортировать его?

...