Module importieren

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
ertlpott
User
Beiträge: 44
Registriert: Montag 14. April 2003, 16:05

hi. habe gerade vorgestern mit python angefangen und kenne mich im moment irgendwie überhaupt nicht aus.

da ist ein code bespiel zum importieren von modulen.

in einer datei "myfile.py" die ich in "H:\Programme\versuche" abgespeichert habe, steht folgender code:

title="the meaning of life"

und jetzt soll ich in dem python editor dieses modul importieren. im buch sieht dass so aus:

% python
>>> import myfile
>>> print myfile.title

es happert schon daran, dass ich, wenn ich die >>> am zeilenanfang herauslösche und stattdessen das %python hinschreibe, die fehlermeldung zurückbekomme:

invalid syntax
und der editor zeigt mir halt mit rot auf das "%".

außerdem kann dass doch nicht reichen wenn ich einfach myfile in das programm eingebe.
ihc meine, da brauche ich doch noch einen pfad oder sowas!?

naja, danke schon im voraus für die hilfe

ertlpott[/code]
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

ertlpott hat geschrieben:hi. habe gerade vorgestern mit python angefangen

Willkommen!

Das % python soll der Aufruf des Python-Interpreters selbst sein, wobei das % wohl ein Unix-Prompt sein soll. Wenn Du also Windows benutzt, hast Du in der Eingabeaufforderung (aka "DOS-Fenster") als Prompt sowas wie H:\Programme\versuche> stehen. Das ganze lautet also für Dich:
H:\Programme\versuche> python
Python 2.2.2 (#37, Oct 14 2002, 17:02:34) [MSC 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import myfile
>>> print myfile.title
the meaning of life
>>>

hth - sonst nochmal nachfragen
Jan
ertlpott
User
Beiträge: 44
Registriert: Montag 14. April 2003, 16:05

ahaaaa bin erst gerade draugekommen, dass ich das python ins selbe verzeichnis kopieren muss, wo auch das modu liegt, und dann die befehle von dort aus starten muss.

danke

simon
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

nö, musst du nicht zwingend. unter linux wird das automatisch gemacht, unter win muss du nachdem du python gestartet hast einfach das machen:

Code: Alles auswählen

>>> import sys
>>> sys.path.append("H:\Programme\versuche")
>>> import myfile
>>> print myfile.title
damit weiß Python, wo es nach deinem Modul suchen soll...
Zuletzt geändert von Milan am Dienstag 15. April 2003, 09:25, insgesamt 1-mal geändert.
RicmanX
User
Beiträge: 69
Registriert: Donnerstag 29. August 2002, 17:10
Wohnort: Erfurt
Kontaktdaten:

Allerdings solltest du dann drauf achten, das ein kein offizielles Modul gibt das genauso wie deins heißt ;)
ertlpott
User
Beiträge: 44
Registriert: Montag 14. April 2003, 16:05

aber das haut bei mir auch nicht hin. wenn ich dass so mache, wie es da in grün steht, meldet er mir zurück, dass es kein modul mit diesem name gibt. aber dass modul is da ganz sicher drin

simon
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

probier es bitte nochmal. ich hab gesehen, dass ich sys.path.append("H:\Programme\versuche>") geschrieben habe. Es muss aber sys.path.append("H:\Programme\versuche") heißen, also ohne das ">".
ertlpott
User
Beiträge: 44
Registriert: Montag 14. April 2003, 16:05

weiß echt nicht was es da hat. :?
kann es vielleicht daran liegen, dass python nicht mit der groß- und kleinschreibung klar kommt?

naja, schaumamal

gute nacht

simon
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

ertlpott hat geschrieben:kann es vielleicht daran liegen, dass python nicht mit der groß- und kleinschreibung klar kommt?
Python schon ;-). In http://python.sandtner.net/viewtopic.php?p=2238#2238 hast Du was von "Myfile" geschrieben, hier im Thread aber "myfile".

Es wird aber eher am sys.path.append() liegen. Im Pfadstring muss (meist) die Sonderbedeutung vom Backslash durch einen weiteren Backslash aufgehoben werden: sys.path.append("H:\\Programme\\versuche")
Mit print sys.path kannst Du das Ergebnis ja mal kontrollieren.

Jan

BTW: Hier und da ein Großbuchstabe erhöht meine Bereitschaft, zu helfen, erheblich.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

:roll: :idea: hab ich gar net mehr dran gedacht. Ich benutz wegen dieser Regelung in Win trotzdem immer "/". Dank Python funktioniert das auch :)
ertlpott
User
Beiträge: 44
Registriert: Montag 14. April 2003, 16:05

aja. das mit den Doppel-Backslashes funktioniert.

Voges hat folgendes geschrieben
BTW: Hier und da ein Großbuchstabe erhöht meine Bereitschaft, zu helfen, erheblich.
Wie meinst du das? Macht das Probleme bezüglich Python, oder bist du Deutsch-Lehrer? :wink:
jumpman

Hi!

In dem Zusammenhang habe ich eine Frage:

Ich habe meine Datei mit dem sys.path.append("D:\\Python\\versuche") eingebunden.

Wenn ich dann sys.path eingebe, finde ich den Pfad auch.

Aber sobald ich Python beende, ist der Pfad nicht mehr vorhanden und ich muss den obigen Schritt jedes mal neu wiederholen. Ist das richtig oder gibt es eine Möglichkeit, dass der Pfad vorhanden bleibt?

gruss
jumpman
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi jumpman. Schau dir mal bitte den Thread an, bzw das Modul site.
Gast

HI!

@Milan: Erstmal vielen Dank für den Link. Den habe ich vorher schon gelesen.

Ich habe mir auch schon das Modul site angeschaut aber es will partout nicht klappen.

Es ist bei jedem Neustart von Python wieder verschwunden.

gruss
jumpman
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Das kann ich mir net vorstellen, da das Modul site automatisch importiert wird und dafür zuständig ist, den Pfad zu setzen. Irgendwo muss eine Datei site.py existieren, die kannst du dann entsprechend editieren. Etwas ähnliches gabs hier schonmal im Forum in noch einem anderen Thread, ich glaub er hieß "Auch Autoren amchen Fehler". Musst du mal suchen, da steht alles ausführlich drin.
Gast

HI!

Vielen vielen Dank, Milan!!!!

Ich war zu dumm, den Pfad richtig zu setzen :lol: :lol:

Nochmals vielen dank!!!

gruss
Jumpman
Antworten