Witaj. Zadanie dla kogoś, kto bardzo dużo zbierał projektów python w .EXE i ma w tym dużą doświadczenie. Załączone zrzuty ekranu. Mam źródło, w którym są różne skrypty. A także builder, który je zbiera w jeden builder (.exe). Dodaliśmy do ogólnych skryptów bibliotekę selenium-wire==5.1.0 i podczas budowy builda pojawiają się błędy, ostrzeżenia. Ciekawy fakt! Projekt jest duży, zbierałem z ponad 50 różnymi bibliotekami i takich konfliktów nie było. Zauważam również, że jest zwykły Selenium, który zbierał się bez problemów, a także stealth, to typowy binarny. Oprócz zależności, które są w pliku: requirements.txt, do jego budowy dodałem informacje, które nazywają się hookami, w myapp.spec dopisałem jego ścieżki, gdzie znajduje się biblioteka i tak dalej. I też bez konfliktów to wszystko się zbierało. A ten selenium-wire jest jakiś bardzo szczególny. Programista próbował w tych konfliktach usunąć biblioteki, które kolidowały, ale to głupie, bo są potrzebne! A kiedy po prostu aktualizowali ich wersję, to w konsoli, gdzie zbiera się build, krążyło nas, to usuń, to wstaw to, i tak dalej, jakby jakiś cykl. Krótko mówiąc! Moja myśl jest taka, że taką rzecz jak ten: selenium-wire trzeba nie budować, a jakoś wcisnąć do .exe. Albo jakoś poprawnie go zbudować. Tak, w konsoli jest naciśnij enter, aby zignorować konflikt i wszystko się zbierze, i w zasadzie powinno wszystko działać. Bo! W ogóle nie rozumiem, w edytorze, gdzie uruchamia się projekt, nie ma żadnych konfliktów. A tutaj jakieś konflikty. Niestety, po prostu coś mi napisać w moich 2 plikach, które odpowiadają za budowę, i oddać mi z powrotem raczej mi nie pomoże. Dlatego trzeba, abyście się do mnie podłączyli, jak często robią różni programiści i spojrzeli na ten problem. Bo przesyłać kod z różnymi bibliotekami i swoimi plikami, który ma więcej niż 2 GB, na pewno nie będę. To bzdura! Dajcie pracę tutaj, więcej nie pisać kodu, a pomyśleć i poprawnie zapisać warunki, aby build się zbudował.
Słowa od specjalisty, który zrobił mi nową funkcję i dodał bibliotekę selenium wire.
Zapewnić poprawne działanie aplikacji Python z użyciem selenium-wire==5.1.0, usunąć wszystkie konflikty zależności, które przeszkadzają w kompilacji do .exe, mimo że uruchomienie skryptu działa poprawnie.
Używana biblioteka:
selenium-wire==5.1.0
Również używane:
httpcore==0.17.3
httpx==0.24.1
h2>=4.0
googletrans==3.1.0a0
Na etapie uruchamiania skryptu wszystko działa, ale podczas budowy .exe (przez pyinstaller) pojawiają się błędy zależności z powodu:
konfliktów między httpx a httpcore
konfliktów między wersjami h2 — 3.* a 4.*
googletrans, który w wersji PyPI ma błędną zależność od przestarzałego httpx==0.13.3
selenium-wire==5.1.0 wymaga:
h2 >= 4.0
A httpx==0.13.3 (błędnie zależny dla googletrans) wymaga:
httpcore==0.9.*
httpcore==0.9.* wymaga:
h2==3.*
Konflikt: nie można jednocześnie używać h2==4.* i h2==3.*