2013-04-26 8 views
5

Ich habe ein Multiplayer-Pong-Spiel mit TCP, UDP und Pygame gemacht. die Module ich verwende, sind: pygame, os, Protokollierung, Gewindeschneiden, zufällig, yaml (PyYAML) und BuchseSpiel läuft gut von der Quelle, aber nicht von py2app

Wenn das Spiel von der Kommandozeile mit python2.7 läuft es gut funktioniert, aber die kompilierte Version mit py2app einen Fehler gibt mir die lautet:

TypeError: Error when calling the metaclass bases 
    function() argument 1 must be code, not str 

ich um gegoogelt haben, und die anderen Fragen zu diesem Thema auf Stack-Überlauf macht keinen Sinn in meinem Fall scheint es. Die Linie, wo es mir den Fehler gibt, ist:

class Entity(pygame.Surface): 
    def __init__(self, x, y, w, h, color=(255, 255, 255)): 
     pygame.Surface.__init__(self, (w, h)) 

Wie Sie verstanden haben könnte, ist es in der ersten Zeile dieses Beispiels ist. Es ist etwas seltsam bei der Verwendung von pygame.Surface. Aber wie gesagt, es funktioniert, wenn ich das Programm in der Kommandozeile starte!

Das py2app Skript Ich benutze geht so:

from setuptools import setup 

    APP = ['src/client.py'] 
    OPTIONS = {'argv_emulation': True, 'includes': ['EXTERNAL LIBRARY'], } 

    setup(
     app=APP, 
     options={'py2app': OPTIONS}, 
     setup_requires=['py2app'], 
    ) 

Vielen Dank im Voraus!

+0

Ich habe die Lösung selbst gefunden, sorry für die Störung. früher in der Kommandozeile gesagt: RuntimeWarning: import verwandeln: Nein _view namens Modul (Import: Kein Modul mit dem Namen _view) Offenbar das machte so als Funktion erkannt pygame.Surface konnte nicht importiert werden und nicht aus der Computer. So machte die Fehlermeldung nach allem –

+0

Kann nicht, anscheinend brauche ich 10 Ruf, um es selbst innerhalb von 8 Stunden zu beantworten –

+1

@Zenolijo Oh schau, du hast mehr als 10 jetzt :). – squiguy

Antwort

3

Die Lösung selbst gefunden. Früher in der Befehlszeile hieß es:

RuntimeWarning: import transform: No module named _view (ImportError: No module named _view) 

Offenbar, das machte es so ‚pygame.Surface` kann nicht importiert werden und nicht als Funktion vom Computer erkannt. Die Fehlermeldung hat also Sinn gemacht.

Verwandte Themen