OOP in Python?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
Drake
User
Beiträge: 71
Registriert: Mittwoch 14. März 2007, 15:48
Wohnort: Bremen
Kontaktdaten:

Mittwoch 14. März 2007, 15:52

Hi!

Bin noch ein blutiger Anfänger, aber hab schon zwei kleine Fragen. ;)

1.) Kann man mit Python Windows Applications programmieren?

2.) Währe es damit auch z.B. möglich einen Instant Messenger mit Python auf Windows Basis zu programmieren?
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Mittwoch 14. März 2007, 15:55

Hallo auch Drake ... und zu Deinen Fragen, zweimal ja :).
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 14. März 2007, 15:56

Hi Drake!

Willkommen im Python-Forum!

Und hier die "kurzen" Antworten: ;-)
Drake hat geschrieben:1.) Kann man mit Python Windows Applications programmieren?
Ja :-) Z.B. mit http://wxpython.org/
Drake hat geschrieben:2.) Währe es damit auch z.B. möglich einen Instant Messenger mit Python auf Windows Basis zu programmieren?
Ja :-) Z.B. mit http://wxpython.org/

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Drake
User
Beiträge: 71
Registriert: Mittwoch 14. März 2007, 15:48
Wohnort: Bremen
Kontaktdaten:

Mittwoch 14. März 2007, 15:59

Danke für die netten Antworten. :)
Benutzeravatar
Drake
User
Beiträge: 71
Registriert: Mittwoch 14. März 2007, 15:48
Wohnort: Bremen
Kontaktdaten:

Mittwoch 14. März 2007, 16:03

Ach, bevor ich nen neuen Thread erstelle gleich noch ne Frage:

Ist es dann mit wxPython auch möglich .exe zu erstellen die auch wie normale laufen? Zurzeit gibt es ja py2exe aber da kann man die Exe nur über cmd starten.

Ich weiß, edit wäre besser aber dann hätts keiner gesehen. xD
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Mittwoch 14. März 2007, 16:11

Nope .. Du kannst aber Python Anwendungen mittels speziellen Drittanbieter Packaging-Programmen zu ausführbare .exe, etc. umwandeln.

Je nach Tool ist die einfacher und umfangreicher oder auch nicht ;).

Die bekanntesten Tools sind wohl:
- py2exe
und
- PyInstaller

Aber ... wie kommst Du dadrauf, dass die Programme nur über eine CommandShell zu betreiben wären?
Drake hat geschrieben:... Zurzeit gibt es ja py2exe aber da kann man die Exe nur über cmd starten...
Niemand hindert Dich dadran, eine Executable über einen Dateibrowser, aus einem anderen Script herraus (z.B. Batch, Python, Shell, etc.) oder was auch immer herraus aufzurufen ;).

Mit diesen Packaging-Tools kannst Du sogar Anwendungen "paketieren", die dem Verhalten von Com-Servern oder Windows-Diensten entsprechen.
Zuletzt geändert von Masaru am Mittwoch 14. März 2007, 16:13, insgesamt 1-mal geändert.
Benutzeravatar
Drake
User
Beiträge: 71
Registriert: Mittwoch 14. März 2007, 15:48
Wohnort: Bremen
Kontaktdaten:

Mittwoch 14. März 2007, 16:13

Mit py2exe kann man keine ausführbaren .exe machen ..
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Mittwoch 14. März 2007, 16:14

Kann man doch ;).
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 14. März 2007, 16:15

Drake hat geschrieben:Ist es dann mit wxPython auch möglich .exe zu erstellen die auch wie normale laufen? Zurzeit gibt es ja py2exe aber da kann man die Exe nur über cmd starten.
Hi Drake!

Das hängt nicht von wxPython ab. Dafür ist py2exe oder cx_Freeze zuständig. Wie kommst du darauf, dass diese EXE-Dateien nur über CMD gestartet werden können? Das ist nicht wahr. Du kannst, wie mit jedem anderen Programm, eine Verknüpfung ins Startmenü legen oder das Programm mit einem Doppelklick auf das Icon starten.

Du kannst die mit py2exe oder cx_Freeze erstellten Dateien mit einem Installer zu einem Installationspaket zusammenstellen, wie du es von anderen Programmen gewohnt bist.

http://www.python-forum.de/topic-5726.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Mittwoch 14. März 2007, 16:17

Py2Exe Internetseite hat geschrieben: py2exe is a Python Distutils extension which converts Python scripts into executable Windows programs, able to run without requiring a Python installation.
vielleicht solltest du dir erstmal die Internetseiten und oder die Dokumentationen anschauen.

MfG EnTeQuAk
Benutzeravatar
Drake
User
Beiträge: 71
Registriert: Mittwoch 14. März 2007, 15:48
Wohnort: Bremen
Kontaktdaten:

Mittwoch 14. März 2007, 16:19

Aber wenn ich z.B. ein schlichtes Hello World Programm schreibe und in eine .exe konvertiere, dann öffnet sich das Fenster ein paar ms und schließt sich dann wieder.
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Mittwoch 14. März 2007, 16:20

Drake hat geschrieben:Aber wenn ich z.B. ein schlichtes Hello World Programm schreibe und in eine .exe konvertiere, dann öffnet sich das Fenster ein paar ms und schließt sich dann wieder.
War aber auch zu erwarten oO Selbst wenn du die Python Datei mit einem Doppelklick öffnest, öffnet sich das CMD Fenster kurz und es schließt sich wieder... warum?

Könntest am ende des Programms ein raw_input() machen, wenn du willst oO'' Dann würde es gehen. Aber Konsolapplikationen sollte man eh über CMD aufrufen, sind wohl eher dafür gedacht...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 14. März 2007, 16:30

Drake hat geschrieben:Aber wenn ich z.B. ein schlichtes Hello World Programm schreibe und in eine .exe konvertiere, dann öffnet sich das Fenster ein paar ms und schließt sich dann wieder.
Hallo Drake!

Klicke mit der Maus auf "Start", dann auf "Ausführen" und gib in das Textfeld "dir" (ohne Anführungszeichen) ein. Starte das Programm mit einem Klick auf "OK".

Was passiert? Das Programm "dir" ist ein Kommandozeilenprogramm und gibt einfach nur einen Text an die Standardausgabe aus. Das Programm beendet sich aber sofort nach Ende des Programms wieder selbst. Deshalb flickert kurz ein schwarzes Fenster hoch, aber das war es auch schon.

Startest du CMD und führst innerhalb von CMD das Programm "dir" aus, dann bleibt die Anzeige erhalten, weil CMD noch offen bleibt.

Genau so verält es sich auch mit solchen HalloWelt-Programmen, die einfach nur ein "Hallo Welt" an die Standardausgabe schreiben. Diese werden ausgeführt und sofort danach wieder beendet. Führt man diese innerhalb einer CMD-Sitzung aus, dann bleibt die Ausgabe sichtbar, da die CMD-Sitzung weiter läuft. Führt man sie mit einem Doppelklick aus, dann beendet sich das Programm sofort danach wieder.

Wenn du ein Programm schreiben möchtest, das nicht nur einen Text an die Standardausgabe (=STDOUT =print) schreibt, dann musst du ein Framework wie z.B. wxPython benutzen und damit eine GUI entwickeln. Also Fenster definieren, Widgets darauf platzieren und anzeigen lassen. Wie so etwas aussehen könnte, siehst du hier: http://www.python-forum.de/topic-5722.html

Um einfach nur mal kurz einen Text in einem Fenster anzuzeigen, gibt es einen Trick: http://www.python-forum.de/topic-5721.html

mfg
Gerold
:-)
Zuletzt geändert von gerold am Mittwoch 14. März 2007, 16:49, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 14. März 2007, 16:36

HalloWelt-Programm mit Fensterausgabe:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

import wx

wx.SetDefaultPyEncoding("iso-8859-1")
app = wx.PySimpleApp(redirect = True)
print "Hallo Welt"
app.MainLoop()
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Drake
User
Beiträge: 71
Registriert: Mittwoch 14. März 2007, 15:48
Wohnort: Bremen
Kontaktdaten:

Mittwoch 14. März 2007, 16:44

Erstmal danke an alle ;D

Dazu hab ich gleich einen Verbesserungsvorschlag: Man sollte eine "Anfänger-Area" einrichten .. Für solche Fragen wie meine ;D

Und noch eine Frage ^^

Code: Alles auswählen

import sys
i = 0
print "Zum schließen bitte exit eingeben!"
exit = ""
stop = raw_input().upper()
while i < 1:
    
    while stop == "exit":
        if stop == "exit":
            sys.exit(0)
        else:
            "Programm wird weitergeführt!"
Das Programm soll solange laufen bis exit eingegeben wird und sich dann beenden .. Es läuft zwar weiter aber die Eingabe von exit hat keine Wirkung .. Woran liegt das?
Antworten