Seite 1 von 1

umstieg auf OSX

Verfasst: Samstag 17. August 2013, 03:37
von Kamik423
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

Re: umstieg auf OSX

Verfasst: Samstag 17. August 2013, 08:17
von BlackJack
@Kamik423: Falsche Major-Version von Python? In Python 3 kann man in Funktionssignaturen kein Tupelunpacking mehr machen.

Re: umstieg auf OSX

Verfasst: Samstag 17. August 2013, 10:37
von lunar
@Kamik423 OX liefert Python 2.7 mit, somit musst Du Python eigentlich nicht eigens nachinstallieren.

Re: umstieg auf OSX

Verfasst: Samstag 17. August 2013, 14:19
von Kamik423
Python 3.3.2

Vielen dank :D

Kamik423

Re: umstieg auf OSX

Verfasst: Samstag 17. August 2013, 14:28
von Kamik423
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

Re: umstieg auf OSX

Verfasst: Samstag 17. August 2013, 14:36
von Hyperion
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!

Re: umstieg auf OSX

Verfasst: Samstag 17. August 2013, 14:41
von lunar
@Kamik423 Wie hast Du Pygame denn installiert?

Re: umstieg auf OSX

Verfasst: Samstag 17. August 2013, 15:01
von Kamik423
pygame 1.9.1 release und python 2.7.5

Installer heruntergeladen und Ausgeführt

Kamik

Re: umstieg auf OSX

Verfasst: Samstag 17. August 2013, 15:02
von Kamik423
aber wenn ich in der Konsole

>>>help()

>>>pygame

mache kommt der selbe Fehler

Re: umstieg auf OSX

Verfasst: Samstag 17. August 2013, 15:19
von Sirius3
Du hast wahrscheinlich die 32bit-Version auf einem 64bit-System installiert.

Re: umstieg auf OSX

Verfasst: Samstag 17. August 2013, 15:25
von Kamik423
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

Re: umstieg auf OSX

Verfasst: Samstag 17. August 2013, 22:09
von lunar
@Kamik423 Emacs ;)

Re: umstieg auf OSX

Verfasst: Sonntag 18. August 2013, 13:39
von Leonidas
@Kamik423 Vim ;)

Re: umstieg auf OSX

Verfasst: Sonntag 18. August 2013, 14:22
von BlackJack
@Kamik423 Sublime Text 2 ;-)

Re: umstieg auf OSX

Verfasst: Sonntag 18. August 2013, 14:46
von Leonidas
BlackJack hat geschrieben:@Kamik423 Sublime Text 2 ;-)
Proprietäre Software? I am disappoint :p

Re: umstieg auf OSX

Verfasst: Sonntag 18. August 2013, 15:13
von BlackJack
@Leonidas: Es ist aber immerhin Python drin. :-) Solange es nichts vergleichbares Freies gibt, muss ich das Manko in kauf nehmen.

Re: umstieg auf OSX

Verfasst: Sonntag 18. August 2013, 15:24
von Leonidas
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…

Re: umstieg auf OSX

Verfasst: Sonntag 18. August 2013, 17:04
von 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. :-)