Так что у меня довольно странная проблема, у меня есть приложение на python, созданное с использованием python3.7 и PyQT5.
Я связал его с py2app, и когда я дважды щелкаю по нему, чтобы начать, он работает нормально, но когда я нажимаю кнопку, которая выполняет большую серию команд, он вылетает.
Странно то, что если я делаю то же самое, но открываю приложение с помощью терминала (либо с помощью команды open
, либо команды ./
, приложение работает без проблем.
Мне трудно понять, как на самом деле отладить это, так как отчет о сбое osx действительно не дает мне никакой полезной информации и никогда не падает при запуске через python.
from setuptools import setup
import PyQt5
from PyQt5 import QtCore
from PyQt5 import QtGui
from PyQt5 import Qt
from PyQt5.QtCore import *
from PyQt5.QtGui import *
APP_NAME = "setup tool"
APP = ['main.py']
DATA_FILES = ['bl_ui.ui']
OPTIONS = {'argv_emulation': True,
'includes': ['PyQt5', 'PyQt5.Qt', 'PyQt5.QtCore', 'PyQt5.QtGui', 'PyQt5._qt', 'PyQt5.uic', 'sip'],
'iconfile': 'app.icns',
'plist': {
'CFBundleName': APP_NAME,
'CFBundleDisplayName': APP_NAME,
'CFBundleGetInfoString': "my setup tool",
'CFBundleIdentifier': "tool",
'CFBundleVersion': "0.1.0",
'CFBundleIconFile': 'app.icns',
'CFBundleShortVersionString': "0.1.0",
'NSHumanReadableCopyright': u"Copyright © 2019, some name"
}
}
setup(
app=APP,
name="Setup Tool",
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
это скрипт сборки. К сожалению, я не могу поместить настоящий код здесь, потому что он огромный, и я не знаю точно, какая часть огромной команды делает это, но если вы можете дать мне идею о том, как отладить это, это было бы звездно.