Различное поведение PyInstaller при подписании приложения с помощью QWebEngineViewPython

Программы на Python
Ответить
Anonymous
 Различное поведение PyInstaller при подписании приложения с помощью QWebEngineView

Сообщение Anonymous »

У меня есть приложение, использующее виджет QWebEngineView, и когда я создаю пакет распространения с помощью PyInstaller, я получаю другое поведение, независимо от того, подпишу я приложение или нет. Я создал небольшой воспроизводимый пример (tester.py):

Код: Выделить всё

import time
import sys
from PySide6.QtCore import QUrl
from PySide6.QtWebEngineWidgets import QWebEngineView
from PySide6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout

app = QApplication(sys.argv)
web = QWebEngineView()
web.setHtml('')

wdg = QWidget()
vl = QVBoxLayout(wdg)
btn1 = QPushButton('Clear')
btn2 = QPushButton('Something')
btn3 = QPushButton('Google')
vl.addWidget(web)
vl.addWidget(btn1)
vl.addWidget(btn2)
vl.addWidget(btn3)
wdg.setLayout(vl)

btn1.clicked.connect(lambda x: web.setHtml(''))
btn2.clicked.connect(lambda x: web.load(QUrl("https://something.com")))
btn3.clicked.connect(lambda x: web.load(QUrl("https://google.com")))
wdg.show()

sys.exit(app.exec())
Это отлично работает с использованием python tester.py, содержимое можно очистить, и оба сайта загружаются нормально. Если я создаю дистрибутив с помощью pyinstaller tester.py, то запуск ./dist/tester/tester работает так же хорошо:
Изображение

Однако, если я подпишу приложение с помощью pyinstaller --codesign-identity XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX tester. py, то при запуске двоичного файла я получаю другое поведение. На Mac с процессором Intel Core i7 под управлением MacOS Big Sur страница очистки и сайт Something.com загружаются нормально, но сайт google.com, похоже, отключает виджет QWebEngineView. Если я подпишу приложение на Mac с Apple Silicon M2 Max под управлением MacOS Sequoia 15.0.1, то виджет будет постоянно отключен:
Изображение

Идентификация кода действительна (замаскирована выше по очевидным причинам). Я пробовал использовать оконную версию с -w, без разницы. Я также попробовал указать целевую архитектуру с помощью --target-architecture, но все равно без разницы.
На всех тестовых компьютерах использовались Python 3.12, PyInstaller 6.7.0, PySide6 6.6.1.
Есть идеи? Мне нужно распространить приложение, поэтому мне нужно его подписать.

Подробнее здесь: https://stackoverflow.com/questions/790 ... engineview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»