Worauf bezieht sich import?

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
Fallen][Angel
User
Beiträge: 39
Registriert: Dienstag 20. Mai 2008, 12:38

Donnerstag 14. August 2008, 08:17

Hallo zusammen,

ich ziehe mir gerade anhand von "Dive Into Python" die Sprache rein und versuche möglichst viel daraus zu lernen :) Ich bin zwar noch am Anfang des "Buches" aber schon an der Lektion bzw. import vorbei.

Grundsätzlich hab ich das auch verstanden, jedoch einen Punkt würde ich noch gerne wissen, welchen ich wohl übersehen habe. Auf welchen Ordner/Pfad bezieht sich import?

Okay die Basisklassen findet Python alleine, aber wenn ich z.B. ein kleines Script schreiben will und die Klasse dazu irgendwo ablege, wie findet Python diese Dateien dann per import?

Wäre für etwas Hilfe sehr dankbar! Vielleicht stehe ich auch nur einfach auf dem Schlauch :)
Pablo Escobar
User
Beiträge: 21
Registriert: Montag 12. November 2007, 15:15
Wohnort: Stuttgart

Donnerstag 14. August 2008, 08:53

Import sucht in allen Pfaden, welche in "PYTHONPATH" gespeichert sind

Code: Alles auswählen

import sys
for i in sys.path:
    print i

e:\Emacs\emacs-22.1\etc
C:\WINDOWS\system32\python25.zip
c:\Python25\DLLs
c:\Python25\lib
c:\Python25\lib\plat-win
c:\Python25\lib\lib-tk
c:\Python25
c:\Python25\lib\site-packages
Edit:
Hier kannst du dir noch was zu dem Thema durchlesen:http://www.python.org/doc/current/inst/ ... 0000000000
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Donnerstag 14. August 2008, 09:46

Hoi,

was bei dem Snippet im zweiten Post vielleicht unterging: Als erstes sucht Python immer im aktuellen Pfad. Von dort kannst Du alle .py/pyc/pyo-Dateien sowie für Python kompilierte shared object files oder dlls ebenfalls importieren. Ansonsten kannst Du auch Pfade an sys.path (was eine Liste von Pfaden ist) dranhängen (siehe geposteter Link).

Die weiteren Tricks und Kniffe kommen mit der Zeit, bzw. werden auch im Buch erklärt. Und bei Fragen halt hierher wenden ;-).

Gruß,
Christian
Fallen][Angel
User
Beiträge: 39
Registriert: Dienstag 20. Mai 2008, 12:38

Donnerstag 14. August 2008, 11:49

Danke für die Antworten :)

@CM: Jo ich les einfach weiter aber die Frage kam einfach auf. Es wird immer import verwendet aber kein Wort darüber verloren, woher es dann eigentlich kommt. Und bzw. wieso es kommt :)
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Donnerstag 14. August 2008, 11:55

Wieso? Ganz einfach: Das ist in allen (na ja, den allermeisten) Programmiersprachen ähnlich. Wenn man fremden Code einbinden kann, muß man nicht alles selber schreiben. Aber irgendwoher muß der Rechner ja wissen, was er einbinden soll. Man kann ja nicht alles einbinden, was so zu finden ist, denn das würde zuviel Zeit und Speicher fressen. Also muß man konkreter werden. Und wenn Du "import x" machst, steht Dir der ganze Namenraum von "x" zur Verfügung. Voilà tout!
Antworten