Seite 1 von 1

Linux eigene Module importieren?

Verfasst: Sonntag 26. September 2004, 23:16
von annihilation
Hi,
ich versuche Python, unter Linux, bekannt geben kann in welchen Ordnern er nach
modulen suchen soll.
Ich hab schon mit der SuFu versucht ihr im Forum was zu finden, gegoogelt und zig
Dateien durchgeguckt aber ich hab einfach nichts gefunden.

Hoffe Ihr könnt mir helfen


mfg
annihilation

Verfasst: Sonntag 26. September 2004, 23:35
von Dookie
Hi annihilation,

in einem Pythonscript kannst Du einen Pfad zum Suchpfad für Module folgendermassen hinzufügen.

Code: Alles auswählen

sys.path.append("/pfad/zu/deinen/pythonmodulen")

Gruß

Dookie

Verfasst: Montag 27. September 2004, 08:09
von annihilation
Hi,
erstmal danke für Deine schnelle Hilfe. Nur hab ich leider immernoch ein kleines Problem
wenn ich

Code: Alles auswählen

sys.path.append("/home/username/Python/libs/")
eingebe dann kommt immer diese Fehlermeldung.

Code: Alles auswählen

Traceback (most recent call last):
  File "<stdin>", line 1, in ?
NameError: name 'sys' is not defined
Hoffe meine Frage sind nicht zu dämlich .


mfg
annihilation

Verfasst: Montag 27. September 2004, 08:15
von mawe
Hi!

Du musst erst das Modul sys importieren. Schreib am Anfang deines Scripts einfach

Code: Alles auswählen

import sys
Gruß, mawe

Verfasst: Montag 27. September 2004, 14:50
von annihilation
Hi,
danke für die Antwor,. habs grad schon selbst rausgefunden. :)
Jedoch tat sich da bei mir gleich die nächste Frage auf :) wo ist der Unterschied zwischen

from sys import *
import sys

Also für mich ist zwischen den beiden ausdrücken vom Sinn her kein Unterschied.
könnte mir das bitte nochmal jemand erleutern?


mfg
annihilation

Verfasst: Montag 27. September 2004, 14:57
von rogen
hier hilft SuFu weiter :)

Verfasst: Montag 27. September 2004, 16:02
von FiRe^
Bei import sys musst du den Modulnamen immer dazuschreiben:

Code: Alles auswählen

sys.path.append("/home/username/Python/libs/")
wenn Du aber from sys import * schreibt, musst Du den Modulnamen nicht mehr schreiben:

Code: Alles auswählen

path.append("/home/username/Python/libs/")

Verfasst: Montag 27. September 2004, 16:21
von annihilation
Achso ok besten dank für die Antwort

Stimmt SuFu hätte warscheinlich geholfen
war aber grad zu faul :)


mfg
annihilation

Verfasst: Montag 27. September 2004, 17:09
von Dookie
Die verwendung von import sys hat noch einen Vorteil.

Code: Alles auswählen

from sys import *
from os import *

path.append("/home/username/Python/libs/") # !!! Fehler
Da auch in os ein Objekt (Modul) mit dem name path existiert kommt der Fehler. Du kannst also nicht mehr auf path aus sys zugreifen. Ich verwende, bei kurzen Modulnamen immer die Form import modul oder from modul import objekt1, objekt2, ... So ist dann auch weiter unten im Code klar, was bei z.B. sys.paht gemeint ist.


Gruß

Dookie

Verfasst: Dienstag 28. September 2004, 05:51
von RainBowBender
ich bevorzuge generell import gegenüber from x import *

Insbesondere bei mehreren APIs hält es den Code übersichtlicher und leichter wartbar. Außerdem verschmutzt es den eigenen Namensraum nicht.