Автоустановка Python Selenium Geckodriver: разрешение отклонено при получении версии Firefox ⇐ Python
Автоустановка Python Selenium Geckodriver: разрешение отклонено при получении версии Firefox
Я запускал скрипт Python, который работал нормально в нескольких дистрибутивах, но вызывал проблемы в Gentoo. Проблемная команда: geckodriver_autoinstaller.install():
Traceback (самый последний вызов — последний): Файл «/home/james/Gits/News_Scraper/main.py», строка 5, в из импорта main_functions * Файл «/home/james/Gits/News_Scraper/main_functions.py», строка 25, в из импорта Scraping_functions * Файл «/home/james/Gits/News_Scraper/scraping_functions.py», строка 19, в geckodriver_autoinstaller.install() Файл «/home/james/Venvs/scraper_venv/lib/python3.10/site-packages/geckodriver_autoinstaller/__init__.py», строка 15, при установке geckodriver_filepath = utils.download_geckodriver(cwd) Файл «/home/james/Venvs/scraper_venv/lib/python3.10/site-packages/geckodriver_autoinstaller/utils.py», строка 148, в download_geckodriver firefox_version = get_firefox_version() Файл «/home/james/Venvs/scraper_venv/lib/python3.10/site-packages/geckodriver_autoinstaller/utils.py», строка 88, в get_firefox_version с subprocess.Popen(['firefox', '--version'], stdout=subprocess.PIPE) в качестве процедуры: Файл "/usr/lib/python3.10/subprocess.py", строка 971, в __init__ self._execute_child(args, исполняемый файл, preexec_fn, close_fds, Файл «/usr/lib/python3.10/subprocess.py», строка 1847, в _execute_child поднять child_Exception_type (errno_num, err_msg, err_filename) PermissionError: [Errno 13] Разрешение отклонено: «firefox» Используя Traceback, который я запустил:
>>> subprocess.Popen(['firefox', '--version'], stdout=subprocess.PIPE) Traceback (последний вызов последний): Файл «», строка 1, в Файл "/usr/lib/python3.10/subprocess.py", строка 971, в __init__ self._execute_child(args, исполняемый файл, preexec_fn, close_fds, Файл «/usr/lib/python3.10/subprocess.py», строка 1847, в _execute_child поднять child_Exception_type (errno_num, err_msg, err_filename) PermissionError: [Errno 13] Разрешение отклонено: «firefox» Я проверил команду Firefox в оболочке и получил ошибку отказа в доступе. В моей системе Firefox называется firefox-bin, поэтому я понимаю, почему он не работает, но я ожидал, что ошибка будет «команда не найдена», а не «отказано в разрешении». Я исхожу из того, что это тот же самый «отказ в разрешении», который я получаю внутри Python.
~$ который Firefox фаерфокс не найден ~$ какой контейнер Firefox /usr/bin/firefox-bin Я подумал, что, возможно, я мог бы просто использовать псевдоним «firefox-bin» для «firefox», но безуспешно: ~$ который Firefox
Firefox: псевдоним Firefox-bin
>>> подпроцесс импорта >>> subprocess.Popen(['firefox', '--version'], stdout=subprocess.PIPE) Traceback (последний вызов последний): Файл «», строка 1, в Файл "/usr/lib/python3.10/subprocess.py", строка 971, в __init__ self._execute_child(args, исполняемый файл, preexec_fn, close_fds, Файл «/usr/lib/python3.10/subprocess.py», строка 1847, в _execute_child поднять child_Exception_type (errno_num, err_msg, err_filename) PermissionError: [Errno 13] Разрешение отклонено: «firefox» >>> Неужели я ошибся, думая, что эта ошибка «отказано в разрешении», отображаемая в Python, связана с тем, что имя исполняемого файла Firefox = firefox=bin? Или, возможно, установки псевдонима в оболочке недостаточно?
Изменить: если я заменю firefox-bin на firefox в команде Python, я не получу ошибки, но он также вернет None.
>>> subprocess.Popen(['firefox-bin', '--version'], stdout=subprocess.PIPE) В любом случае, команда, которую я использую geckodriver_autoinstaller.install(), похоже, не позволяет указать альтернативное имя для двоичного файла, поэтому, возможно, мне следует просто использовать другую команду .
Я запускал скрипт Python, который работал нормально в нескольких дистрибутивах, но вызывал проблемы в Gentoo. Проблемная команда: geckodriver_autoinstaller.install():
Traceback (самый последний вызов — последний): Файл «/home/james/Gits/News_Scraper/main.py», строка 5, в из импорта main_functions * Файл «/home/james/Gits/News_Scraper/main_functions.py», строка 25, в из импорта Scraping_functions * Файл «/home/james/Gits/News_Scraper/scraping_functions.py», строка 19, в geckodriver_autoinstaller.install() Файл «/home/james/Venvs/scraper_venv/lib/python3.10/site-packages/geckodriver_autoinstaller/__init__.py», строка 15, при установке geckodriver_filepath = utils.download_geckodriver(cwd) Файл «/home/james/Venvs/scraper_venv/lib/python3.10/site-packages/geckodriver_autoinstaller/utils.py», строка 148, в download_geckodriver firefox_version = get_firefox_version() Файл «/home/james/Venvs/scraper_venv/lib/python3.10/site-packages/geckodriver_autoinstaller/utils.py», строка 88, в get_firefox_version с subprocess.Popen(['firefox', '--version'], stdout=subprocess.PIPE) в качестве процедуры: Файл "/usr/lib/python3.10/subprocess.py", строка 971, в __init__ self._execute_child(args, исполняемый файл, preexec_fn, close_fds, Файл «/usr/lib/python3.10/subprocess.py», строка 1847, в _execute_child поднять child_Exception_type (errno_num, err_msg, err_filename) PermissionError: [Errno 13] Разрешение отклонено: «firefox» Используя Traceback, который я запустил:
>>> subprocess.Popen(['firefox', '--version'], stdout=subprocess.PIPE) Traceback (последний вызов последний): Файл «», строка 1, в Файл "/usr/lib/python3.10/subprocess.py", строка 971, в __init__ self._execute_child(args, исполняемый файл, preexec_fn, close_fds, Файл «/usr/lib/python3.10/subprocess.py», строка 1847, в _execute_child поднять child_Exception_type (errno_num, err_msg, err_filename) PermissionError: [Errno 13] Разрешение отклонено: «firefox» Я проверил команду Firefox в оболочке и получил ошибку отказа в доступе. В моей системе Firefox называется firefox-bin, поэтому я понимаю, почему он не работает, но я ожидал, что ошибка будет «команда не найдена», а не «отказано в разрешении». Я исхожу из того, что это тот же самый «отказ в разрешении», который я получаю внутри Python.
~$ который Firefox фаерфокс не найден ~$ какой контейнер Firefox /usr/bin/firefox-bin Я подумал, что, возможно, я мог бы просто использовать псевдоним «firefox-bin» для «firefox», но безуспешно: ~$ который Firefox
Firefox: псевдоним Firefox-bin
>>> подпроцесс импорта >>> subprocess.Popen(['firefox', '--version'], stdout=subprocess.PIPE) Traceback (последний вызов последний): Файл «», строка 1, в Файл "/usr/lib/python3.10/subprocess.py", строка 971, в __init__ self._execute_child(args, исполняемый файл, preexec_fn, close_fds, Файл «/usr/lib/python3.10/subprocess.py», строка 1847, в _execute_child поднять child_Exception_type (errno_num, err_msg, err_filename) PermissionError: [Errno 13] Разрешение отклонено: «firefox» >>> Неужели я ошибся, думая, что эта ошибка «отказано в разрешении», отображаемая в Python, связана с тем, что имя исполняемого файла Firefox = firefox=bin? Или, возможно, установки псевдонима в оболочке недостаточно?
Изменить: если я заменю firefox-bin на firefox в команде Python, я не получу ошибки, но он также вернет None.
>>> subprocess.Popen(['firefox-bin', '--version'], stdout=subprocess.PIPE) В любом случае, команда, которую я использую geckodriver_autoinstaller.install(), похоже, не позволяет указать альтернативное имя для двоичного файла, поэтому, возможно, мне следует просто использовать другую команду .
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Python selenium (firefox/geckodriver) не работает в контейнере Docker Linux/Ubuntu
Anonymous » » в форуме Python - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Python selenium (firefox/geckodriver) не работает в контейнере Docker Linux/Ubuntu
Anonymous » » в форуме Linux - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Anonymous
-