Код прекрасно работает в Pycharm, но при преобразовании в EXE он не - PullRequest
1 голос
/ 08 июля 2019

В основном мой код работает нормально в Pycharm, но когда я конвертирую его в exe с помощью Pyinstaller, он не работает и выдает ошибку.

Я перепробовал некоторые изменения, но все попытки потерпели неудачу.

Selenium.py

from selenium import webdriver
import ctypes
from webdriver_manager.firefox import GeckoDriverManager

#driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())

user32 = ctypes.windll.user32
width = user32.GetSystemMetrics(0) # 2560 mine for example
height = user32.GetSystemMetrics(1) # 1440 mine for example

wT = width / 3
hT = height / 2
wB = width / 2
answer = height / 36
hB = (height / 2) - answer

wPa = width / 3
wPa2 = wPa * 2

hPa = height / 2
wPa3 = width / 2


def Window1():
    driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
    driver.get("https://www.google.co.uk/")
    driver.set_window_size(wT, hT)
    driver.set_window_position(0, 0)
    driver.switch_to.window(driver.window_handles[0])
if __name__ == '__main__':
    Window1()

Run.py

import threading
import Selenium
import time

t1 = threading.Thread(target=Selenium.Window1)

t1.start()
time.sleep(2)

^ - это урезанная версия моего кода, у меня открывается 5 окон вместо 1, но это всего лишьдля примера того, что я делаю / как я это продвигаю.Надеюсь, этого достаточно.

Это ошибка, которую я получаю, когда пытаюсь запустить exe:

enter image description here

1 Ответ

0 голосов
/ 08 июля 2019

Кажется, что PyInstaller не может разрешить webdriver_manager.Поэтому вам просто нужно добавить целую библиотеку в виде файла данных с add-data:

pyinstaller -F --add-data ".\env\Lib\site-packages\webdriver_manager;webdriver_manager" script.py

Не забудьте заменить путь webdriver_manager на правильный.

...