Добрый день.
Есть небольшая программка написанная на python(selenium) с прикрученным PyQt5, её я пакую через pyinstaller в 1 файл , но при попытке запустить собранный файл говорит о том, что chromedriver не найден, даже если я кладу chromedriver рядом с созданным файлом.
В коде пути к chromedriver я прописываю так
driver_path = os.getcwd()
chrome_options = Options()
chrome_options.add_argument('--log-level=3')
chrome_options.add_argument("--start-maximized")
self.driver = webdriver.Chrome(options=chrome_options, executable_path=driver_path + '/chromedriver')
Суть проблемы. При простом запуске без сборки в 1 файл, те python3 main.py - всё работает хорошо, видит все нужные файлы, но при упаковке не видит
структура папки в которую pyinstaller кидает собранный файл:
dist/
.... main -- это файл собранный через pyinstaller(pyinstaller --onefile main.py)
.... chromedriver
Как видно chromedriver лежит рядом, но при попатке запустить собранный файл всё та же история,
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
Абсолютные пути работает нормально, пример:
self.driver = webdriver.Chrome(options=chrome_options, executable_path='user/downloads/program/chromedriver')
Это не правильно, ибо мне нужно скажем скинуть картинку в папку с собранным файлом, запустить программу, обработать картинку
для картинок я пытался писать
img_name = 'privet.png'
self.driver.find_element_by_class_name('WithUpload-FileInput').send_keys(os.getcwd() + f'{img_name}')
В итоге работают только абсолютные пути, прописанные вручную в коде
У меня нет Макоси, поэтому опытным путем не получается, что удивительно, ведь работаю я на линукс.
Подозреваю, что проблема в pyinstaller, но не уверен
Спасибо