Селен и Python в исполняемый файл - PullRequest
0 голосов
/ 27 июня 2018

У меня есть скрипт 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
...