umstieg auf OSX

Probleme bei der Installation?
Antworten
Kamik423
User
Beiträge: 93
Registriert: Donnerstag 28. März 2013, 16:53

Hallo,

Ich habe mir kürzlich eine MacBook Pro gekauft, und wollte meine Python-programme übertragen.
Auf Windows hat das ganze noch Funktioniert, jetzt bekomme ich einen Fehler bei "def renntest((" 2. klammer. (Python und pygame sind installiert)

Code: Alles auswählen

import pygame, sys, random
pygame.init()
screen = pygame.display.set_mode([700, 600])
pygame.display.set_caption("wolfram")






def rentext((x,y),text,size):                                                                                   #renders text
    font = pygame.font.Font("tahoma.ttf", size)
    text = font.render(text, 1, [0,0,0])
    screen.blit(text, [x, y])

class button:
    def __init__(self, (x,y), text):
        self.x = x
        self.y = y
        self.text = text
        self.render()
    def render(self):
        if self.mouseover():
            pygame.draw.rect(screen,[125, 95, 35],(self.x  , self.y  ,  50, 20))
        else:
            pygame.draw.rect(screen,[  0,  0,  0],(self.x  , self.y  ,  50, 20))
        pygame.draw.rect(screen,    [220,220,220],(self.x+1, self.y+1,  48, 18))
        rentext((self.x+2, self.y+3), self.text, 9)
    def mouseover(self):
        if pygame.mouse.get_pos()[0]>=self.x and pygame.mouse.get_pos()[0]<=self.x+50:
            if pygame.mouse.get_pos()[1]>=self.y and pygame.mouse.get_pos()[1]<=self.y+20:
                return True
            else:
                return False
    def test(self):
        return self.mouseover()

        
class switch:
    def __init__(self, (x, y), state, text):

        self.x = x
        self.y = y
        self.state = state
        self.text = text
        self.render()
    def render(self):
        pygame.draw.rect(screen,[220,220,220],(self.x  ,self.y-1,11,11))
        if self.mouseover():
            pygame.draw.rect(screen,[125, 95, 35],(self.x  ,self.y  ,10,10)) 
        else:
            pygame.draw.rect(screen,[0  ,  0,  0],(self.x  ,self.y  ,10,10))                                        #rect
        pygame.draw.rect(screen,[255,255,255],(self.x+1,self.y+1, 8, 8))

        rentext((self.x+15, self.y-1), self.text, 9)
        
        if self.state:
            pygame.draw.lines(screen,[0,0,0],0,([self.x+2,self.y+4],[self.x+5,self.y+7],[self.x+11,self.y-3]))
            pygame.draw.lines(screen,[0,0,0],0,([self.x+2,self.y+3],[self.x+5,self.y+6],[self.x+11,self.y-4]))
    def mouseover(self):
        if pygame.mouse.get_pos()[0]>=self.x and pygame.mouse.get_pos()[0]<=self.x+10:
            if pygame.mouse.get_pos()[1]>=self.y and pygame.mouse.get_pos()[1]<=self.y+10:
                return True
            else:
                return False
    def test(self):
        if self.mouseover():
            self.state = not self.state
            return True
        else:
            return False
           
def rhs():                                                                                                      #creates menu
    pygame.draw.rect(screen, [192,192,192], (600, 0, 100, 600))
    pygame.draw.rect(screen, [220,220,220], (600, 0, 2  , 600))
    rentext((605, 2),"Options",20)

    s1.render()
    s2.render()
    s3.render()
    b1.render()



    

def next():
    global x
    global pixo
    global pix
    s = pixo[cc(x-2)]+pixo[cc(x-1)]+pixo[cc(x)]+pixo[cc(x+1)]+pixo[cc(x+2)]
    if s == 2 or s == 4:
        p = 1
        color = (0,0,0)
    else:
        p = 0
        color = (255,255,255)
    screen.set_at((x*pxo,y*pxo),color)
    x += 1
    return p
def newline():
    pixo = pix
    x = 0

    global y
    y += 1
    
def crenew():
    pix = []
    pso = pixsize
    for i in range(0, 600/pixsize):
        r = random.randint(0,1)
        pix.append(r)

        if r:
            color = (0,0,0)
        else:
            color = (255,255,255)
        screen.set_at((len(pix)-1,0),color)

    
def cc(number):
    if number < 0:
        return len(pix) + number
    elif number > len(pix):
        return number-len(pix)
    else:
        return number



pix = []
pixo = []
pixsize = 1
pxo = 1

x = 0

y = 1

b1      = button((610, 40), "Create new")
s1      = switch((610, 80), True,  "1")
s2      = switch((610, 100), False, "2")
s3      = switch((610, 120), False, "4")

crenew()
print pix
pixo = pix

while True:
    
    if x>600:
        newline()
    pix.append(next())
    
    rhs()
    pygame.display.flip()
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        elif event.type == pygame.MOUSEBUTTONDOWN:
            if s1.test():
                s2.state = False
                s3.state = False
                pixsize = 1
            if s2.test():
                s1.state = False
                s3.state = False
                pixsize = 2
            if s3.test():
                s1.state = False
                s2.state = False
                pixsize = 4
            if b1.test():
                crenew()
waere froh, wenn mir da jemand helfen koente.

(bitte kritisiert nicht meinen Programmierstil, ich wuesste einfach gerne, wo der Fehler liegt)

Danke,

Kamik423
0x4c65742773206d616b652073757265207468617420686973746f7279206e6576657220666f726765747320746865206e616d6520656e746572707269736521
BlackJack

@Kamik423: Falsche Major-Version von Python? In Python 3 kann man in Funktionssignaturen kein Tupelunpacking mehr machen.
lunar

@Kamik423 OX liefert Python 2.7 mit, somit musst Du Python eigentlich nicht eigens nachinstallieren.
Kamik423
User
Beiträge: 93
Registriert: Donnerstag 28. März 2013, 16:53

Python 3.3.2

Vielen dank :D

Kamik423
0x4c65742773206d616b652073757265207468617420686973746f7279206e6576657220666f726765747320746865206e616d6520656e746572707269736521
Kamik423
User
Beiträge: 93
Registriert: Donnerstag 28. März 2013, 16:53

Traceback (most recent call last):
File "/Volumes/INTENSO/gerettet/wolfram/new/wolfram_universe.py", line 1, in <module>
import pygame, sys, random
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/__init__.py", line 95, in <module>
from pygame.base import *
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/base.so, 2): no suitable image found. Did find:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/base.so: no matching architecture in universal wrapper




Irgendwas ist doch falsch
0x4c65742773206d616b652073757265207468617420686973746f7279206e6576657220666f726765747320746865206e616d6520656e746572707269736521
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Du scheinst ``pygame`` nicht installiert zu haben! Und Python 3.x passt nicht zu pygame, da dieses nur mit Python 2.x läuft; da gibt es afaik nen Port für das neue SDL 2.0; aber ich weiß nicht, ob der schon stabil und vor allem für Python 3 ist!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
lunar

@Kamik423 Wie hast Du Pygame denn installiert?
Kamik423
User
Beiträge: 93
Registriert: Donnerstag 28. März 2013, 16:53

pygame 1.9.1 release und python 2.7.5

Installer heruntergeladen und Ausgeführt

Kamik
0x4c65742773206d616b652073757265207468617420686973746f7279206e6576657220666f726765747320746865206e616d6520656e746572707269736521
Kamik423
User
Beiträge: 93
Registriert: Donnerstag 28. März 2013, 16:53

aber wenn ich in der Konsole

>>>help()

>>>pygame

mache kommt der selbe Fehler
0x4c65742773206d616b652073757265207468617420686973746f7279206e6576657220666f726765747320746865206e616d6520656e746572707269736521
Sirius3
User
Beiträge: 17746
Registriert: Sonntag 21. Oktober 2012, 17:20

Du hast wahrscheinlich die 32bit-Version auf einem 64bit-System installiert.
Kamik423
User
Beiträge: 93
Registriert: Donnerstag 28. März 2013, 16:53

Genau, das hab ich auch ungefaehr gleichzeitig rausgefunden: pygame 2.7 gibts anscheinend nur in 32 bit

bin jetz auf 2.6 umgestiegen, jetzt geht alles,

Vielen Dank


(P.S. Weis einer einen schoenen Editor fuer mac?)

Danke
0x4c65742773206d616b652073757265207468617420686973746f7279206e6576657220666f726765747320746865206e616d6520656e746572707269736521
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

@Kamik423 Vim ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@Kamik423 Sublime Text 2 ;-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:@Kamik423 Sublime Text 2 ;-)
Proprietäre Software? I am disappoint :p
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@Leonidas: Es ist aber immerhin Python drin. :-) Solange es nichts vergleichbares Freies gibt, muss ich das Manko in kauf nehmen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Solange es nichts vergleichbares Freies gibt, muss ich das Manko in kauf nehmen.
Python kann man auch in Vim und Emacs haben…
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@Leonidas: Ich meinte mit Vergleichbares nicht nur das Python drin ist, sondern dass es mir all das bietet was ST2 hat, und bitte ohne das ich da vorher viel rumschrauben muss. :-)
Antworten