Я сделал многопользовательскую игру Pong с TCP, UDP и pygame. модули, которые я использую: pygame, os, logging, threading, random, yaml (PyYAML) и socket
При запуске игры из командной строки с python2.7 все работает хорошо, но скомпилированная версия с py2app выдает ошибку:
TypeError: Error when calling the metaclass bases
function() argument 1 must be code, not str
Я погуглил, и другие вопросы об этом при переполнении стека, похоже, не имеют никакого смысла в моем случае. Строка, где это дает мне ошибку:
class Entity(pygame.Surface):
def __init__(self, x, y, w, h, color=(255, 255, 255)):
pygame.Surface.__init__(self, (w, h))
Как вы уже поняли, он находится в первой строке этого примера. Это что-то странное при использовании pygame.Surface. Хотя, как я уже сказал, это работает, когда я запускаю программу в командной строке!
Сценарий py2app, который я использую, выглядит следующим образом:
from setuptools import setup
APP = ['src/client.py']
OPTIONS = {'argv_emulation': True, 'includes': ['EXTERNAL LIBRARY'], }
setup(
app=APP,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
Заранее спасибо!