Seite 1 von 1
anfänger problem mit modulen
Verfasst: Dienstag 13. Februar 2007, 22:29
von 0John0
hallo zusammen
bis jetzt habe ich mein python tutorial durchgearbeitet und hab eigentlich alles verstanden und ich muss sagen es ist sehr interessant.
doch nun hänge ich absolut fest.das thema handelt sich um module.
um dieses importieren von sys. mein problem ist das ich mir gar nicht vorstellen kann was man da überhaupt eingibt.
und vorrallem bekomme ich nicht das gleiche ergebniss wie im beispiel.
Das beispiel sieht so aus:
Code: Alles auswählen
#!/usr/bin/python
import sys
print 'Die Kommandozeilenparameter sind:'
for i in sys.argv:
print i
print '\n\nDer PYTHONPATH ist', sys.path, '\n'
Ausgabe
$ python beispiel_sys.py Wir sind Argumente
Code: Alles auswählen
Die Kommandozeilenparameter sind:
beispiel_sys.py
Wir
sind
Argumente
Der PYTHONPATH ist ['/home/swaroop/byte/code', '/usr/lib/python23.zip',
'/usr/lib/python2.3', '/usr/lib/python2.3/plat-linux2',
'/usr/lib/python2.3/lib-tk', '/usr/lib/python2.3/lib-dynload',
'/usr/lib/python2.3/site-packages', '/usr/lib/python2.3/site-packages/gtk-2.0']
Ich benutze windows und python 2.5 aber bei mir sieht die ausgabe ganz anders aus. also vorrallem fehlt bei mir "wir sind Argumente".wo kommt den das überhaupt her?
ich hoffe jemand kann mir helfe.
Edit (Leonidas): Code in Tags gesetzt.
Re: anfänger problem mit modulen
Verfasst: Dienstag 13. Februar 2007, 23:06
von Leonidas
0John0 hat geschrieben:Ich benutze windows und python 2.5 aber bei mir sieht die ausgabe ganz anders aus. also vorrallem fehlt bei mir "wir sind Argumente".wo kommt den das überhaupt her?
Aus den Kommandozeilenargumenten die du dem Programm mitgibst. Wenn du keine Mitgibst, dann wird das auch nicht angezeigt.
Und das sys.path gleich dem PYTHONPATH ist, würde auch auch nicht unbedingt unterschreiben.
Re: anfänger problem mit modulen
Verfasst: Mittwoch 14. Februar 2007, 18:33
von 0John0
Danke für die antwort und für das umschreiben des codes.ich hatte noch nicht nachgelesen wie man das macht aber in der zwischenzeit habe ich das im testforum ausprobiert und werde bei nächsten mal den code gleich so eingeben.
im beispiel oben wird ja auch nirgends 'wir sind argumente' eingegeben?
oder muss ich zuerst eine datei erstellen,speichern und dann importieren?und dann steht erst 'wir sind argumente' oder was auch immer dann in dieser datei steht?
ich habe noch recht viel im internet zu diesem thema gefunden vielleicht finde ich ja noch selber heraus wie es funktioniert.
aber was meinst du mit:
Leonidas hat geschrieben:
Und das sys.path gleich dem PYTHONPATH ist, würde auch auch nicht unbedingt unterschreiben.
meinst du das im beispiel ein fehler ist?
was soll den dieser PYTHONPATH heissen?es zeigt mir einfach an von wo Module importiert werden?
Re: anfänger problem mit modulen
Verfasst: Mittwoch 14. Februar 2007, 18:55
von Leonidas
0John0 hat geschrieben:Danke für die antwort und für das umschreiben des codes.ich hatte noch nicht nachgelesen wie man das macht aber in der zwischenzeit habe ich das im testforum ausprobiert und werde bei nächsten mal den code gleich so eingeben.
Freut mich
0John0 hat geschrieben:im beispiel oben wird ja auch nirgends 'wir sind argumente' eingegeben?
Doch, hier:
Wenn du da etwas anderes eintippst, wird auch etwas anderes ausgegeben.
0John0 hat geschrieben:aber was meinst du mit:
Leonidas hat geschrieben:Und das sys.path gleich dem PYTHONPATH ist, würde auch auch nicht unbedingt unterschreiben.
meinst du das im beispiel ein fehler ist?
was soll den dieser PYTHONPATH heissen?es zeigt mir einfach an von wo Module importiert werden?
Nein, mir ging es um die Bezeichnungen. Der Pfad wo die Module gesucht werden ist in ``sys.path`` abgelegt, er heißt aber nicht ``PYTHONPATH``. Denn ``PYTHONPATH`` ist etwas anderes: Es ist eine Umgebungsvariable, die der Interpreter beim starten ausliest und deren Inhalt in ``sys.path`` einfügt. Damit kannst du also Ordner temporär in ``sys.path`` ausnehmen, ohne den eigentlichen Quellcode ändern zu müssen.
Verfasst: Donnerstag 15. Februar 2007, 12:20
von 0John0
Mann du bist ja immer schnell mit antwort geben
mhm ja aber diese Zeile:
Das ist ja die erste Zeile der Ausgbe gemäss dem Beispiel.Ich meine da kann ich ja dann nichts reinschreiben denn es ist ja schon die Ausgabe?
aber das hat ja nichts zu tun mit:
oder?
weil ich gebe das am anfang immer ein aber wenn ich dann das script öffnen dann erscheint das in der ausgabe nicht.nach dem beispiel müsste es dann ja so aussehen,was es bei mir nicht tut.
ich habe gedacht das sei nur für Linux benutzer notwendig?
Verfasst: Donnerstag 15. Februar 2007, 14:05
von nkoehring
Aaalso mal ganz langsam.
Es scheint du hast noch nicht verstanden, was Argumente und all das sind.
Die Ausgabe "Wir sind Argumente" kommt, weil du sie als Argument uebergibst.
Das heißt nicht, dass du das Script per Doppelklick oeffnest und sowas, sondern das du in deiner Windoze-Konsole in den Ordner des Scripts gehst und es von da aus ungefaehr so hier ausfuehrst:
oder so:
...das "Wir sind Argumente" bzw "Bla bla Blubb" wird dann ausgegeben, weil die Aufgabe deines Programmes nichts weiter ist, als alle Argumente (also hier sind es 3) nacheinander auszugeben.
Verfasst: Donnerstag 15. Februar 2007, 14:52
von Leonidas
0John0 hat geschrieben:mhm ja aber diese Zeile:
Das ist ja die erste Zeile der Ausgbe gemäss dem Beispiel.Ich meine da kann ich ja dann nichts reinschreiben denn es ist ja schon die Ausgabe?
Nein, das ist eigentlich die Eingabe. Das Dollarzeichen zeigt an, dass es in eine System-Shell eingegeben werden soll (das liegt daran dass man als normaler User unter Unices eine Eingabezeile ala ``leonidas@metodij:~$`` hat). Dann tippst du daszuführende Programm ein (in diesem Fall ``python``), danach gibst du ihm Argumente mit, wie eben ``beispiel_sys.py`` und ``Wir sind Argumente``. Python startet, führt ``beispiel_sys.py`` aus und gibt die Argumente ``Wir sind Argumente`` an das Skript weiter.
0John0 hat geschrieben:aber das hat ja nichts zu tun mit:
oder?
Nein, nicht direkt - Das ist die Shebang und diese befindet sich in der Regel in der ersten Zeile des Skriptes. Das ist eine Art Steueranweisung für die Shell.
0John0 hat geschrieben:weil ich gebe das am anfang immer ein aber wenn ich dann das script öffnen dann erscheint das in der ausgabe nicht.nach dem beispiel müsste es dann ja so aussehen,was es bei mir nicht tut.
Das brauchst du nicht anzugeben - es fängt mit ``#`` an und wird von Python daher ignoriert.
Eben, du gibst ja keine Argumente mit. Dann erscheinen kleine. Logisch, oder? Wo sollten sie denn auch herkommen.
0John0 hat geschrieben:ich habe gedacht das sei nur für Linux benutzer notwendig?
Sehbang ist nur für Unix-Nutzer sinnvoll, aber stören tut es nie und daher rate ich generell an, den hinzuschreiben.
Verfasst: Donnerstag 15. Februar 2007, 16:46
von nkoehring
[OFFTOPIC]
Ach genau... Shebang hieß es... ein so kultiger Name und ich vergesse den. Tz, das sind die ganzen Windoze-User um mich... die lassen mich degenerieren ^^
Aber sie werden es nicht schaffen... ich bleib bei meine (im Moment) Gentoo und bei offenen Systemen
[/OFFTOPIC]
PS: sorry, musste einfach raus ^^
Verfasst: Freitag 16. Februar 2007, 00:32
von 0John0
Ok also soll ich:
im system shell eingeben?
Habe ich gemacht aber bei mir kommt immer syntax fehler aber ich versthe nicht warum...?? Habe es auf verschiedene weise probiert im "python shell" und in der "command line"! Habe ich da was falsch gemacht?? Oder was ist genau das "system shell" etwa nicht das "python shell"??
Verfasst: Freitag 16. Februar 2007, 01:12
von Masaru
Bei Syntax Fehlern, diese am besten einmal + das Script posten. Dann können wir genauer etwas damit anfangen.
Mit System Shell ist in Deinem Falle unter Windows die
"
Eingabgeaufforderung" (cmd.exe) gemeint:
Dort rufst Du dann den
Python Interpreter gefolgt von dem
Script Dateinamen und dann halt deinen
Argumenten auf.
Bsp. Schritte:
- Windows Eingabeaufforderung (cmd.exe) öffnen
- in das Verzeichnis mit deinem Script wechseln
-
python beispiel_sys.py wir sind argumente eintippen
Achja, unter Windows ist mit Installation von Python in der Regel der Python Interpeter in den Umgebungsvariabeln eingetragen sowie
.py Dateiendungen dieser Anwendung zum automatischen Öffnen zugewiesen.
Daher kannst Du eigentlich auch
python (python.exe) im Aufruf weglassen
.
Zu deinem Script ... der einfachheit halber würde ich einfach mal folgendes testen:
Gruß,
>>Masaru<<
Verfasst: Freitag 16. Februar 2007, 01:14
von Leonidas
0John0 hat geschrieben:Ok also soll ich:
im system shell eingeben?
Nein, das Dollarzeichen musst du natürlich weglassen.
0John0 hat geschrieben:Habe ich gemacht aber bei mir kommt immer syntax fehler aber ich versthe nicht warum...??
Weil du es in den Interaktiven Python-Interpreter eingetippt hast udn nicht in die Eingabeaufforderung.
0John0 hat geschrieben:Oder was ist genau das "system shell" etwa nicht das "python shell"??
Die Eingabeaufforderung. Schau am besten mal in die [wiki]FAQ#WieStarteIchSkripte[/wiki].
Verfasst: Freitag 16. Februar 2007, 18:00
von 0John0
Endlich!
Ich habe es geschafft
vielen dank für eure hilfe und das ihr mir immer wieder retour gepostet habt:)
ausserdem ist jetzt auch das mit dem $ klar und das mit der Shell
also ich mach mal weiter und melde mich dann wieder bei schwierigkeiten