У меня есть скрипт Python, который я пытаюсь преобразовать в исполняемый файл, чтобы другие компьютеры могли использовать его без установленного Python. Я пытался использовать PyInstaller, но продолжаю сталкиваться с проблемами, и я думаю, что это потому, что у меня установлен модуль Selenium. Я нашел эту ссылку пару месяцев назад и попытался следовать тому, что делал пользователь, за исключением Firefox, а не Chrome, но моя программа по-прежнему не будет работать как исполняемый файл. Моя программа завершится сбоем, когда должен открыться Firefox.
Это файл .spec, который я создал после ответа в посте выше, а также комментариев пользователей, которые, по его словам, сработали:
# -*- mode: python -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=['C:\\Users\\Matthew\\Desktop\\Python'],
binaries=[('C:\\Python\\browserdriver\\geckodriver.exe' , '.')],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='Work Bot v1.5',
debug=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='main')
Вот соответствующие строки в моем скрипте Python:
path = os.path.join(sys._MEIPASS, "geckodriver")
driver = webdriver.Firefox(path)
Любая помощь очень ценится!
EDIT:
После запуска программы в командной строке я увидел ошибку до сбоя программы:
Traceback (most recent call last):
File "main.py", line 404, in <module>
File "site-packages\selenium\webdriver\firefox\webdriver.py", line 147, in __init__
File "site-packages\selenium\webdriver\firefox\firefox_profile.py", line 78, in __init__
File "shutil.py", line 309, in copytree
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\Users\\Matthew\\Desktop\\Python\\dist\\main\\geckodriver'
[3056] Failed to execute script main