У меня MacOS Catalina.
Я создал игру с pygame (называемой Pirate Game), в которой в качестве относительного импорта используются несколько изображений и несколько модулей .py. После запуска python setup.py py2app
я попытался открыть файл .app, но получаю следующую ошибку:
В консоли, в разделе system.log, у меня есть следующее :
com.apple.xpc.launchd[1] (org.pythonmac.unspecified.PirateGame.10928[33610]): Service exited with abnormal code: 255
(возможно, есть другая информация из консоли, но я не знаю об этом, поэтому, пожалуйста, оставьте комментарий в этом случае)
Мой файл setup.py:
from setuptools import setup
APP = ['Main.py']
DATA_FILES = [
'Images/grid.png', 'Images/rules.png',
'Images/GameItems/$200.png', 'Images/GameItems/$1000.png',
'Images/GameItems/$3000.png', 'Images/GameItems/$5000.png',
'Images/GameItems/Backstab.png', 'Images/GameItems/Bank.png',
'Images/GameItems/ChooseNextSquare.png', 'Images/GameItems/DoubleScore.png',
'Images/GameItems/LostAtSea.png', 'Images/GameItems/Mirror.png',
'Images/GameItems/Present.png', 'Images/GameItems/Rob.png',
'Images/GameItems/Shield.png', 'Images/GameItems/SinkShip.png',
'Images/GameItems/SneakPeek.png', 'Images/GameItems/SwapScore.png',
'saved_game.txt', 'GameItems.py', 'Constants.py'
]
#includes = ['GameItems.py', 'Constants.py']
OPTIONS = {
'iconfile':'applogo.icns',
'argv_emulation': True,
'packages': ['certifi'],
'plist': {
'CFBundleName': 'Pirate Game',
'CFBundleDisplayName': 'Pirate Game',
'CFBundleGetInfoString': "Testing 1",
'CFBundleVersion': "1.0.0",
'CFBundleShortVersionString': "1.0.0",
}
#'includes': includes
}
setup(
app=APP,
name = "Pirate Game",
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
#py_modules=['Constants','GameItems']
)
У меня есть следующие версии:
py2app 0.21
pygame 2.0.0.dev6
Pillow 7.1.2
Я использую нестандартные библиотечные пакеты:
pygame
from PIL import ImageFont
(остальные sys, datetime)
I думаю, проблема в том, что я точно не знаю, где разместить пакеты и относительный импорт. Я использовал py2app раньше, но в то время я использовал только pygame (не PIL), и у меня был только один файл .py. python setup.py py2app --packages=pygame
работал для меня в то время. Также обратите внимание: я искал десятки других похожих вопросов по SO, но пока мне ничего не помогло.