Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Programmeren met Python op Windows - epic fail  (gelezen 7297 keer)

Programmeren met Python op Windows - epic fail
« Gepost op: 2009/03/04, 10:43:01 »
Ik zit momenteel op m'n stageplek, en ik heb niks te doen. Dus dacht ik: laat ik verder gaan aan mijn IRC-bot (sorry voor de ongemakken op #-offtopic).

Ik dus Python downloaden. Na 5 minuten wachten totdat de virusscanner het weer toestaat dat ik mijn muis mag bewegen ( die stond muurvast, echt waar), installeer ik Python. Dat duurt ook weer 5 minuten, en de PC flipt zowat van HDD-activiteit.

Daarna cmd openen. In één woord: schroot. Het werkt absoluut niet lekker, ben ik blij dat ik Bash heb :) Geen history nadat je cmd opnieuw start, het venster wil niet goed uitrekken ( waars. omdat het DOS is), tekst selecteren blijkt onmogelijk.

Nu nog een goede editor. Iedereen weet dat je daarvoor dus niet Notepad voor moet hebben. Ik haal Notepad++ binnen, maar die lust geen Python-insprong. Op naar Notepad 2. Die werkt, en ik kan beginnen.

Blijkbaar wil cmd niet luisteren naar ctrl+c, want als ik dat doe stopt mijn script niet. Ik moet dus elke keer cmd sluiten, cmd openen en dat enorm lange pad naar mijn script weer typen (want ik kan geen tekst selecteren.).

En op klap op de vuurpijl zegt Windows na 3 keer Python gebruikt te hebben:



Kortom, programmeren met Python op Windows faalt episch. Ik kan niet wachten om weer op m'n oude vertrouwde Linux-bak te zitten :)

Offline charclo

  • Lid
Re: Programmeren met Python op Windows - epic fail
« Reactie #1 Gepost op: 2009/03/04, 13:21:01 »
Ik heb dat ook al gedaan maar dan met IDLE of SPE als IDE en dat werkt goed. Probeer dat eens.
HP Pavilion dv6660eb - Intel Core 2 Duo T7250 2 GHz - 2 GB ram - Nvidia GeForce 8400M GS 128 MB --> Dualboot Ubuntu en Windows Vista
P4 2.6 GHz - 1GB ram - NVIDIA GS7600 - 20 inch Benq widescreen --> Dualboot Ubuntu en Windows XP

Offline Double12

  • Lid
Re: Programmeren met Python op Windows - epic fail
« Reactie #2 Gepost op: 2009/03/04, 15:02:48 »
Ik zit momenteel op m'n stageplek, en ik heb niks te doen. Dus dacht ik: laat ik verder gaan aan mijn IRC-bot (sorry voor de ongemakken op #-offtopic).
Jij zit je nu te beklagen, maar je mag eerder van geluk spreken. ;) Had ik maar zo'n stageplek.

Re: Programmeren met Python op Windows - epic fail
« Reactie #3 Gepost op: 2009/03/04, 15:20:03 »
Ik zit momenteel op m'n stageplek, en ik heb niks te doen. Dus dacht ik: laat ik verder gaan aan mijn IRC-bot (sorry voor de ongemakken op #-offtopic).
Jij zit je nu te beklagen, maar je mag eerder van geluk spreken. ;) Had ik maar zo'n stageplek.
Ik klaag niet, ik vind het juist leuk :P

Offline Double12

  • Lid
Re: Programmeren met Python op Windows - epic fail
« Reactie #4 Gepost op: 2009/03/04, 15:23:09 »
Je kunt ook een Live USB-stick (of desnoods Live-CD) van Slax meenemen. Daar staat ook Python op.
www.slax.org

Re: Programmeren met Python op Windows - epic fail
« Reactie #5 Gepost op: 2009/03/04, 15:46:10 »
Ik heb daarna snel een Ubuntu-USB-stick uit m'n broekzak gehaald en geboot =D

Offline Kev

  • Lid
Re: Programmeren met Python op Windows - epic fail
« Reactie #6 Gepost op: 2009/03/11, 12:38:01 »
Ge moet uw Windows opnieuw opstarten als ge python installeert op windows, omdat die installer het PATH aanpast.

En btw ge kunt tekst selecteren in de windows commandprompt. Ge moet met uw muis op het icoontje in de linkerbovenhoek gaan, klikken en dan in de pop-up edit mark selecteren.

Ma soit dit gaat hier niet over windows, persoonlijk vind ik bash ook lekkerder werken.
All Hail Lelouch, The 99th Emperor of Britannia
All Hail Lelouch! All Hail Lelouch!
Iedereen heeft het recht op mijn waarheid, zo wees geprezen.

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Programmeren met Python op Windows - epic fail
« Reactie #7 Gepost op: 2009/03/11, 12:52:30 »
http://nl.wikipedia.org/wiki/Cygwin
Maar dat zal je vast niet mogen installeren daar ;)

Offline JvH

  • Lid
Re: Programmeren met Python op Windows - epic fail
« Reactie #8 Gepost op: 2009/03/11, 13:15:47 »
Ik moet zeggen dat ik werken met IDLE onder Ubuntu ook niet echt een pretje vind...
Althans niet als je iets wilt proberen met Tkinter. Mss ligt het aan mijn PC, of aan een verkeerde configuratie...
Maar na het afsluiten van mijn Python-programma (zelfs het meest simpele dat alleen een venster tevoorschijn tovert) 'hangt' Tkinter of wat dan ook. IDLE kan dan nog wel gewoon gebruikt worden, maar als ik m'n programma opnieuw wil starten krijg ik een melding dat er nog wat draait. De enige oplossing (?) is om IDLE opnieuw te starten.

Wel jammer want IDLE is het programma bij uitstek om snel testprogrammaatjes in elkaar te flansen. Net als QBasic onder MS-DOS :)

Re: Programmeren met Python op Windows - epic fail
« Reactie #9 Gepost op: 2009/03/11, 13:19:43 »
Dan zal er toch een foutje zitten in uw programma. Ik ken Tkinter niet, maar misschien dat ge uw mainloop (of wat dan ook) niet goed afsluit.

Offline JvH

  • Lid
Re: Programmeren met Python op Windows - epic fail
« Reactie #10 Gepost op: 2009/03/11, 13:27:02 »
Nou dat is het 'm juist... Ik heb echt het minimale van het minimale geprobeerd, direct gekopieerd uit een tutorial. Maar zelfs dan gaat het nog niet goed. Ik zal het vanavond eens opzoeken en de code hier posten, dan kunnen jullie het zelf zien :)

Re: Programmeren met Python op Windows - epic fail
« Reactie #11 Gepost op: 2009/03/11, 13:31:11 »
En als ge iets anders dan IDLE probeert? Gewoon Gedit en de terminal?

Want ik moet zeggen dat IDLE (zeker op windows) echt geen plezier is om mee te werken. Gelukkig gebruik ik het maar af en toe om mijn py2exe scriptje aan te passen.

Offline JvH

  • Lid
Re: Programmeren met Python op Windows - epic fail
« Reactie #12 Gepost op: 2009/03/11, 20:09:26 »
Tkinter is kort gezegd de Python interface voor de Tk toolkit.

Het gaat bijv. om de volgende code:
from Tkinter import *

master = Tk()
w = Canvas(master, width=200, height=100)
w.pack()
w.create_line(0, 0, 200, 100)
w.create_line(0, 100, 200, 0, fill="red", dash=(4, 4))
w.create_rectangle(50, 25, 150, 75, fill="blue")

mainloop()
Lijkt me niks mis mee, maar wie het beter weet mag het zeggen :)
Heb dit op werk onder Windows getest, en dat gaat goed. In Ubuntu echter niet. Zoals gezegd blijft het programma op de een of andere manier draaien nadat ik het venstertje heb afgesloten. Als ik het programma opnieuw probeer te starten krijg ik 2× de volgende melding:
Citaat
The Python Shell window is already executing a command; please wait until it is finished.
Als ik dan kijk in het hoofdvenster van IDLE staat daar in het rood de volgende melding:
Citaat
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1417, in __call__
    return self.func(*args)
  File "/usr/lib/python2.5/idlelib/ScriptBinding.py", line 166, in run_module_event
    interp.runcode(code)
  File "/usr/lib/python2.5/idlelib/PyShell.py", line 701, in runcode
    self.interp.restart_subprocess()
AttributeError: ModifiedInterpreter instance has no attribute 'interp'

Heb het programmaatje ook eens direct vanuit de terminal gestart (python test.py), en dat gaat wel goed.

Dus ik zal het voortaan idd maar doen zoals jij voorstelt Nunslaughter: met gedit. Maar toch jammer, want er zitten toch wel wat dingetjes in IDLE die ik op zich wel handig vind...

Re: Programmeren met Python op Windows - epic fail
« Reactie #13 Gepost op: 2009/03/11, 20:14:05 »
Ge zegt "blijft het programma op de een of andere manier draaien nadat ik het venstertje heb afgesloten". Moet ge geen callback maken voor als de user op het 'kruisje' klikt zodat de mainloop stopt?

Ik zal ook eens even snel kijken, heb nog nooit met Tkinter gewerkt.

Re: Programmeren met Python op Windows - epic fail
« Reactie #14 Gepost op: 2009/03/11, 20:50:19 »
Het volgende werkt voor mij in Ubuntu (terminal) en windows (IDLE).

from Tkinter import *

class App:

    def __init__(self, master):

        frame = Frame(master)
        frame.pack()

        self.button = Button(frame, text="QUIT", command=self.quit)
        self.button.pack(side=LEFT)

        self.canvas = Canvas(master, width=200, height=100)
        self.canvas.pack(side=LEFT)

        self.draw_canvas()

        master.protocol("WM_DELETE_WINDOW", self.quit)

    def draw_canvas(self):
        print "Drawing on canvas"
        self.canvas.create_line(0, 0, 200, 100)
        self.canvas.create_line(0, 100, 200, 0, fill="red", dash=(4, 4))
        self.canvas.create_rectangle(50, 25, 150, 75, fill="blue")

    def quit(self):
        print "Quit application"
        root.quit()
        root.destroy()

root = Tk()
app = App(root)
root.mainloop()


Of dit goede Tkinter code is, weet ik wel niet, maar misschien helpt het u wel :).

Offline JvH

  • Lid
Re: Programmeren met Python op Windows - epic fail
« Reactie #15 Gepost op: 2009/03/12, 08:46:42 »
Ge zegt "blijft het programma op de een of andere manier draaien nadat ik het venstertje heb afgesloten". Moet ge geen callback maken voor als de user op het 'kruisje' klikt zodat de mainloop stopt?
Klinkt wel logisch. Maar dan vind ik het wel raar dat ze in Tkinter tutorials aankomen met dezelfde minimalistische code als die ik liet zien, en meteen daarna uitleggen hoe je het programma moet starten.

Het volgende werkt voor mij in Ubuntu (terminal) en windows (IDLE).

from Tkinter import *

class App:

    def __init__(self, master):

        frame = Frame(master)
        frame.pack()

        self.button = Button(frame, text="QUIT", command=self.quit)
        self.button.pack(side=LEFT)

        self.canvas = Canvas(master, width=200, height=100)
        self.canvas.pack(side=LEFT)

        self.draw_canvas()

        master.protocol("WM_DELETE_WINDOW", self.quit)

    def draw_canvas(self):
        print "Drawing on canvas"
        self.canvas.create_line(0, 0, 200, 100)
        self.canvas.create_line(0, 100, 200, 0, fill="red", dash=(4, 4))
        self.canvas.create_rectangle(50, 25, 150, 75, fill="blue")

    def quit(self):
        print "Quit application"
        root.quit()
        root.destroy()

root = Tk()
app = App(root)
root.mainloop()


Of dit goede Tkinter code is, weet ik wel niet, maar misschien helpt het u wel :).
Dit zal ik vandaag of morgen uitproberen. Dank voor de tip!

Re: Programmeren met Python op Windows - epic fail
« Reactie #16 Gepost op: 2009/03/12, 18:45:29 »
Ik mompel wat over het kapen van een topic...

OT: Ik heb netjes gereboot na het installeren van Python :P

Offline JvH

  • Lid
Re: Programmeren met Python op Windows - epic fail
« Reactie #17 Gepost op: 2009/03/13, 11:11:39 »
Sorry Cumulus, toen ik m'n eerste berichtje postte leek het in mijn ogen nog wel aardig binnen het onderwerp te passen. Maar ik had kunnen voorzien dat het wat offtopic zou kunnen worden.

Ik zal het vervolg van mijn subdraadje voortzetten in een nieuw topic.

Re: Programmeren met Python op Windows - epic fail
« Reactie #18 Gepost op: 2009/03/13, 11:37:25 »
Nuja, het gaat dan ook redelijk over python in windows :). Maar als ge wilt, dan splits ik het wel even af.

Offline JvH

  • Lid
Re: Programmeren met Python op Windows - epic fail
« Reactie #19 Gepost op: 2009/03/13, 11:49:42 »
@Nunslaughter:
Vanavond ga ik je laatste codevoorbeeld uitproberen. Ik start wel een nieuw draadje met de uitkomst daarvan.

EDIT: tenzij het voor jou makkelijk is om ons 'onderonsje' er tussenuit te halen, da's natuurlijk nog netter :)


Offline JvH

  • Lid
Re: Programmeren met Python op Windows - epic fail
« Reactie #21 Gepost op: 2009/03/15, 14:58:29 »
Sorry Cumulus ik gebruik je topic nog 1 laatste keer, omdat het een beetje overdreven zou zijn om een nieuw topic te starten om te zeggen dat Nunslaughters codevoorbeeld mijn probleem heeft verholpen.
@Nunslaughter: dank!

EDIT: ?! Kennelijk werkt mijn code ook gewoon als ik IDLE opstart zonder parameter -n. VAAG, maar goed het werkt :)

OK, nu terug ontopic :)
« Laatst bewerkt op: 2009/03/15, 15:41:46 door JvH »