[FIXED] Wenn die .py-Datei ausführbar wird, hört sie auf zu laufen und bleibt hängen

Ausgabe

Also habe ich dieses einfache Python-Skript ( main.py):

import sys
from webdriver_manager.chrome import ChromeDriverManager
import undetected_chromedriver as uc


def do_work():
    print(sys.argv)
    driver = uc.Chrome(executable_path=ChromeDriverManager().install())
    driver.get('http://www.cnn.com')


if __name__ == '__main__':
    do_work()

Diese .pyDatei funktioniert also gut und ich konvertiere sie in eine exeDatei mit pyinstallser:

pyinstaller --onefile C:\Users\myuser\Desktop\proj\main.py

Und wenn ich versuche, die exeDatei auszuführen, sieht es so aus, als ob sie am Druck meiner hängen bleibt argumentsund meine nicht gestartet wird browser.

Dies ist die Eingabe:

C:\Users\raviv>C:\Users\raviv\dist\main.exe bla bla

Und dies ist die Ausgabe (alle letzten Zeilen werden fortgesetzt und es scheint wie eine Sackgasse …):

['C:\\Users\\myuser\\dist\\main.exe', 'bla', 'bla']
['C:\\Users\\myuser\\dist\\main.exe', '--multiprocessing-fork', 'parent_pid=15632', 'pipe_handle=732']
['C:\\Users\\myuser\\dist\\main.exe', '--multiprocessing-fork', 'parent_pid=16956', 'pipe_handle=736']
['C:\\Users\\myuser\\dist\\main.exe', '--multiprocessing-fork', 'parent_pid=7672', 'pipe_handle=736']
['C:\\Users\\myuser\\dist\\main.exe', '--multiprocessing-fork', 'parent_pid=17280', 'pipe_handle=728']
['C:\\Users\\myuser\\dist\\main.exe', '--multiprocessing-fork', 'parent_pid=12048', 'pipe_handle=716']
['C:\\Users\\myuser\\dist\\main.exe', '--multiprocessing-fork', 'parent_pid=18204', 'pipe_handle=728']

Lösung

Sie müssen dem Skript freeze_support hinzufügen, da eines Ihrer importierten Module unter der Haube Multiprocessing verwendet.

Versuche dies:

import sys
from webdriver_manager.chrome import ChromeDriverManager
import undetected_chromedriver as uc
from multiprocessing import freeze_support
freeze_support()


def do_work():
    print(sys.argv)
    driver = uc.Chrome(executable_path=ChromeDriverManager().install())
    driver.get('http://www.cnn.com')


if __name__ == '__main__':
    do_work()

Danach sollte es gut funktionieren.


Beantwortet von –
Alexander


Antwort geprüft von –
Senaida (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like

[FIXED] Klicken Sie mit Selen auf Text

Ausgabe Ich möchte auf dieses Kontrollkästchen klicken: <label for="auth:RegistrationForm:multistep[gtcAgbChechbox]" class="checkbox"> ::before Ich bestätige, dass ich die <a href="/gtc"…