[PYTHON] Ich kann ein Projekt mit PyWebView mit PyInstaller nicht in eine Exe verwandeln

Derzeit (ab PyWebView 3.1) scheint es beim Versuch, eine Anwendung mit PyWebView wie mit PyInstaller auszuführen, ein Problem zu geben, dass die Kompilierung mit der Fehlermeldung "Pyinstaller-Hook kann WebBrowserInterop.x64.dll nicht finden" unterbrochen wird ist.

Ungefähr wie in der obigen Ausgabe scheint der Webhook für PyInstaller nicht auf den richtigen Pfad zu verweisen, und es tritt ein Fehler auf.

Wie ich oben gesehen habe, scheint die neueste Version korrigiert worden zu sein, aber sie wurde noch nicht im öffentlichen Modul wiedergegeben.

Daher ist es mühsam, den Webhook manuell zu reparieren, bis er behoben ist. Deshalb habe ich ein PowerShell-Skript geschrieben.

Wir verwenden ein PowerShell-Skript zum Kompilieren mit PyInstaller. Rufen Sie daher den folgenden Code auf, bevor Sie PyInstaller in der Datei verwenden.

if(Select-String "library = join\(sitepack, 'lib', dll_name\)" -Path .\.venv\Lib\site-packages\PyInstaller\hooks\hook-webview.py){
  Write-Host "> Fix PyInstaller\hooks\hook-webview.py"
  $data = Get-Content .\.venv\Lib\site-packages\PyInstaller\hooks\hook-webview.py | % {$_ -replace "library = join\(sitepack, 'lib', dll_name\)","library = join(sitepack, 'webview', 'lib', dll_name)"}
  $data | Out-File .\.venv\Lib\site-packages\PyInstaller\hooks\hook-webview.py
}

PowerShell 5.x kann UTF-8 jedoch nicht ohne Stückliste verarbeiten. Wenn dies unverändert bleibt, wird eine Webhook-Datei erstellt, die PyInstaller nicht normal lesen kann.

Da PowerShell 6.x problemlos verwendet werden kann, installieren Sie `pwsh (PowerShell 6.x) von Chocolatey usw. im Voraus und führen Sie dieses Skript unter PowerShell 6 aus.

Ich werde auch Code hinzufügen, der gelöscht werden soll, wenn ich versuche, ein Skript in PowerShell 5.x zu starten, falls ich es versehentlich in PowerShell 5.x ausführe.

if(!($PSVersionTable["PSCompatibleVersions"].Major -contains 6)){
  Write-Host @'
    This script must be PowerShell version 6 or higher before it will work properly.
    The shell currently running is PowerShell version 5 or lower.
    Use the `pwsh` command to change to PowerShell 6.
'@
  exit
}

Es ist sicher, dies in die erste Zeile zu schreiben. Sie werden es bemerken, wenn Sie eine Warnung erhalten.

Recommended Posts

Ich kann ein Projekt mit PyWebView mit PyInstaller nicht in eine Exe verwandeln
Ich habe versucht, die Datenbank (sqlite3) mit kivy zu verwenden
Iframe in Seite mit Selenium kann nicht bearbeitet werden
Verwenden eines Druckers mit Debian 10
Ich kann nicht mit # google-map suchen. ..
Bei Verwendung von JUMAN ++ mit PyKNP ist ein Wertefehler aufgetreten
Lambda in VPC kann keine E-Mails mit Boto3 senden, selbst wenn der VPC-Endpunkt für SES verwendet wird
Ich habe einen Line-Bot mit Python gemacht!
pyenv-vertualenv installiert die Python3-Serie nicht gut
Bilder können mit Google_images_download nicht heruntergeladen werden
Aktion, dass MySQL-Connector-Python nicht mit Anaconda installiert werden kann
Ich habe mit Python eine Lotterie gemacht.
Wenn ich die exe-Datei mit pyinstaller ausführe, stürzt mein PC ab.
Ich kann kein Japanisch mit Pyperclip verwenden
Bei Verwendung von @property in Python wird ein Attribut nicht festgelegt
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
Ich habe einen Pokerspielserver Chat-Holdem mit Websocket mit Python erstellt
Machen Sie Scrapy exe mit Pyinstaller
Ich habe mit Python einen Daemon erstellt
Verwenden einer Webkamera mit Raspberry Pi
Ich habe versucht, Amazon SQS mit Django-Sellerie zu verwenden
Automatische Update-Methode von Python Pyinstaller exe
Ich habe mit Python einen Zeichenzähler erstellt
Ich habe versucht, ○ ✕ mit TensorFlow zu spielen
Ich habe eine Heatmap mit Seaborn [Python] gezeichnet.
Ich habe versucht, Selen mit Headless-Chrom zu verwenden
Ich habe versucht, mit einer Schildkröte eine Linie zu ziehen
Anfänger: Ich habe einen Launcher mit dem Wörterbuch erstellt
Was ich mit Python-Arrays gemacht habe
Ich kann nicht mehr mit der Google App Engine bereitstellen
Ich habe mit Python eine Hex-Map erstellt
Ausgestattet mit einer Kartenfunktion mit payjp
Ich habe ein Lebensspiel mit Numpy gemacht
Ich habe einen Hanko-Generator mit GAN gemacht
Ich habe versucht, pipenv zu verwenden, machen Sie sich also eine Notiz
Ich habe mit Python ein schurkenhaftes Spiel gemacht
Ich habe mit Python einen einfachen Blackjack gemacht
Ich kann das Paket nicht mit pip installieren.
Ich habe mit Python eine Einstellungsdatei erstellt
Ich kann die neue Datei mit yum nicht sehen
Ich habe eine WEB-Bewerbung bei Django gemacht
Ich habe mit Python einen Neuronensimulator erstellt
Ich möchte ein Programm ausführen und verteilen, das die Größe von Bildern in Python3 + Pyinstaller ändert
Ich habe versucht, ein Projekt mit Python on Docker mit PyCharm zu erstellen, aber es hat mit Docker Compose funktioniert
Ich habe einen Stempelersatzbot mit Linie gemacht
Dask kann unter Ub nicht mit pip auf Ubuntu installiert werden
Ich habe eine GUI-App mit Python + PyQt5 erstellt
Ich habe versucht, mit Python einen Twitter-Blocker für faule Mädchen zu machen
[Python] Ich habe mit Tkinter einen Youtube Downloader erstellt.
Ich habe versucht, Mecab mit Python2.7, Ruby2.3, PHP7 zu verwenden
Ich erhalte einen UnicodeDecodeError, wenn ich mit mod_wsgi laufe
Ich habe eine einfache Brieftasche aus Bitcoin mit Pycoin gemacht
Ich habe einen LINE Bot mit Serverless Framework erstellt!
Ich habe versucht, Pythonect, eine Programmiersprache für den Datenfluss, zu verwenden.
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Projekt Euler 4 Die Codierung mit einem neuen Ansatz schlägt fehl.
[Chat De Tornado] Erstellen Sie einen Chat mit WebSocket in Tornado
Ich habe mit Diamond gespielt, einem Tool zum Sammeln von Metriken
Ich habe einen japanischen Parser auf Japanisch mit Pyparsing geschrieben.