Ошибка py2app, возможно, из-за пакетов и относительного импорта - PullRequest
0 голосов
/ 03 мая 2020

У меня MacOS Catalina.

Я создал игру с pygame (называемой Pirate Game), в которой в качестве относительного импорта используются несколько изображений и несколько модулей .py. После запуска python setup.py py2app я попытался открыть файл .app, но получаю следующую ошибку: error message

В консоли, в разделе 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, но пока мне ничего не помогло.

...