Suche Python Programm

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.
Antworten
feldmaus
User
Beiträge: 284
Registriert: Donnerstag 12. Oktober 2006, 16:48

Hi Alle,

Mein Problem,

Code: Alles auswählen

                Ich will ein Python Script/Programm erstellen,
                welches aus mehreren Modulen bestehen soll.
                Also ein Haupt-Programm das eine Art
                Eingabeaufforderung darstellt, in der dann
                Befehle(Python-Module) ausgeführt werden können, wie
                eine Shell. Dort sollte man auch Annehmlichkeiten
                haben wie Befehlsvervollständigung.
                Für das Haupt-Programm wollte ich allerdings
                schon ein fertiges Python Programm nehmen.
                Die Python-Module schreibe ich natürlich selber :-)
Meine Fragen,

Code: Alles auswählen

                Kennt da Jemand ein Python Programm welches ich
                an meine Bedürfnisse anpassen kann?
Sonstiges,

Code: Alles auswählen

                Als OS wollte ich sowohl Linux als auch Windows nutzen.
                Bestimmt hat der eine oder andere mal ein Python Programm
                gesehen, welches hier vorgestellt wurde.
Grüsse Markus
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Was genau suchst du? Einen Editor? Ein Komandozeileneingabe?
Eine GUI in die man Befehle eingeben kann, mit Autokorrektur, und wo die Ergebnisse ausgegeben werden?
Falls letzteres, kannst du dir das ganz einfach selbst bauen:
stdin und stdout in ein Tkinter.Text umleiten oder statt stdin selbst mit eval/exec ausführen oder evtl. umwandeln und dann weiterverarbeiten, dann kannste in nem loop überprüfen, ob du die Eingabe ergänzen kannst. Was für eingaben sollen das denn sein? Nur Werte oder Python-Befehle?
BlackJack

Vielleicht lohnt sich ein Blick in das `cmd`-Modul aus der Standardbibliothek.
feldmaus
User
Beiträge: 284
Registriert: Donnerstag 12. Oktober 2006, 16:48

schlangenbeschwörer hat geschrieben:Was genau suchst du? Einen Editor? Ein Komandozeileneingabe?
Eine Komandozeileneingabe mit Befehlvervollständigung wie man es unter Linux gewohnt ist, allerdings sollen als Befehle nur meine Python Module zur Verfügung stehen.

Ich glaube "Interaktive Shell trifft es ganz gut".
feldmaus
User
Beiträge: 284
Registriert: Donnerstag 12. Oktober 2006, 16:48

BlackJack hat geschrieben:Vielleicht lohnt sich ein Blick in das `cmd`-Modul aus der Standardbibliothek.
Hört sich interessant an.

Frage,

Code: Alles auswählen

Aber wie wird denn mit dem cmd Modul eine Interaktive Shell gestartet?
Gibt es da vielleicht ein Tutorial zu auf Deutsch/Englisch?
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Es haengt natuerlich ein wenig von deinen Beduerfnissen ab, aber du koenntest auch einfach die Python-Shell oder ipython benutzen als deine Kommandozeileneingabe benutzen. (Gerade ipython kann man noch sehr nett konfigurieren). Hier waere dann auch einmal einder der wenigen Faelle, wo man ueber *-importe nachdenken kann, dann haette der Benutzer in der Python-Shell/ipython direkt deine Funktionen zur Verfuegung, inklusive TAB-Vervollstaendigung, History, Hilfesysem und eingabauter Skiptsprache. :D
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
feldmaus
User
Beiträge: 284
Registriert: Donnerstag 12. Oktober 2006, 16:48

Rebecca hat geschrieben:Es haengt natuerlich ein wenig von deinen Beduerfnissen ab, aber du koenntest auch einfach die Python-Shell oder ipython benutzen als deine Kommandozeileneingabe benutzen.
Dann muss ich wohl konkreter werden,

Code: Alles auswählen

Also man sollte mit TAB + TAB eine Auflistung meiner Module bekommen.
Bzw. wenn man einen Befehl nur zum Teil geschrieben hat und dann  TAB
drückt, dann sollte er den Befehl vervollständigen.
weiteres,

Code: Alles auswählen

Unter Debian Etch funktioniert die TAB Taste allerdings nicht in der Python Shell.
Frage,

Code: Alles auswählen

Woran kann das liegen?
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Schon verstanden. Beispiel mit der normalen Python-Shell: Erzeuge dir eine Datei

Code: Alles auswählen

try:
    import readline
except ImportError:
    print "Module readline not available."
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

import modul1
import modul2
import modul3
und lasse die Umgebungsvariable PYTHONSTARTUP darauf zeigen. Wenn du die Python-Shell oeffnest, funktioniert folgendes:

Code: Alles auswählen

>>> m<TAB>
modul1  modul2  modul3
Klar, wenn du einfach nur TAB eintippst, bietet er dir eine Liste aller Python-Namen an. Wenn du das nicht willst, kannst du den Completer an deine Beduerfnisse anpassen, das habe ich auch schonmal gemacht:http://www.python-forum.de/topic-5116.html

Unter Linux wuerde ich dann ein kleines Wrapper-Shellscript schreiben, was automatisch die PYTHONSTARTUP-Variable setzt, sodass "deine" Python-Shell nicht mit den Einstellungen der normalen Python-Shell in Konflikt kommt.

Was ipython noch alles fuer zusaetliche Moeglichkeiten bietet, weiss ich auch nicht alles, ich wuerde sagen, lies dir mal die Doku dazu durch, das lohnt sich bestimmt.

PS: Warum schreibst du immer deine Fragen in Code-Tags?
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
feldmaus
User
Beiträge: 284
Registriert: Donnerstag 12. Oktober 2006, 16:48

Rebecca hat geschrieben: PS: Warum schreibst du immer deine Fragen in Code-Tags?
Meine Antwort,
  • ich versuche den Text lesbarer zu gestalten.
    Allerdings habe ich die code Tags aus Routine Gründen verwendet.
    Ich hätte auch Quote Tags nehmen können.
Danksagung und Entscheidung,
  • Auf jeden Fall danke für den Tipp. Ich denke ich werde erstmal
    mein Programm konkretisieren müssen und dann entscheiden
    was besser wäre. Das Modul "cmd" oder eine angepasste
    python Shell.
Grüsse Markus
Zuletzt geändert von feldmaus am Donnerstag 6. Dezember 2007, 19:17, insgesamt 1-mal geändert.
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Sich selber zu zitieren wirkt ein bisschen Schizophren ;)

Ich denke das die Allgemeinheit mir zustimmen wird, dass man Beiträge ohne Absatzhighlighting gut lesen kann.
Mit, ist es doch sehr befremdlich.
feldmaus
User
Beiträge: 284
Registriert: Donnerstag 12. Oktober 2006, 16:48

Man kann bei mir sofort sehen was das Problem ist, welche Fragen ich habe.
Es ist also alles sauber getrennt.
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Vielleicht als Anregung:
  • Den Text in [ list ] Tags zu setzen sollte ausreichen um Absätze hervorzuheben.
    Dort sind zumindest keine Header oder ähnliches vorhanden
~~ so, schluss mit Offtopic ~~
feldmaus
User
Beiträge: 284
Registriert: Donnerstag 12. Oktober 2006, 16:48

Zap hat geschrieben:Vielleicht als Anregung:
  • Den Text in [ list ] Tags zu setzen sollte ausreichen um Absätze hervorzuheben.
    Dort sind zumindest keine Header oder ähnliches vorhanden
~~ so, schluss mit Offtopic ~~
Danksagung,
  • Guter Tipp. :-)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

feldmann_markus hat geschrieben:Man kann bei mir sofort sehen was das Problem ist, welche Fragen ich habe.
Es ist also alles sauber getrennt.
Da muss ich dagegen halten. Es ist zwar getrennt, aber es erinnert eher an eine Gliederung - und ist für die Leser kontra-intuitiv.

Stell dir mal folgendes Gespräch mit dem Briefträger vor:
Hypothetisches Gespräch hat geschrieben:Briefträger: Hallo, ich habe einen Brief für sie.
Du: Meine Kentnissnahme: Oh, hallo, ein Brief für mich. Meine Reaktion: Oh, auf den habe ich schon lange gewartet. Meine Verabschiedung: Auf wiedersehen.
Ich würde mir denken, dass darauf dann erstmal so ziemlich jede Person erstmal keine Antwort weiß.

Sinnvoller ist meiner Meinung nach "Wie man Fragen richtig stellt" zu beachten.

Bevor das jemand in den falschen Hals bekommt: damit wollte ich niemanden niedermachen, ich finde diesen Antwortstil ziemlich originell, aber nicht empfehlenswert - durchaus Diskutierenswert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten