Linux eigene 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.
annihilation
User
Beiträge: 6
Registriert: Sonntag 26. September 2004, 22:37

Linux eigene Module importieren?

Beitragvon annihilation » Sonntag 26. September 2004, 23:16

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
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Sonntag 26. September 2004, 23:35

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

Code: Alles auswählen

#!/usr/bin/env python
import this
annihilation
User
Beiträge: 6
Registriert: Sonntag 26. September 2004, 22:37

Beitragvon annihilation » Montag 27. September 2004, 08:09

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
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Montag 27. September 2004, 08:15

Hi!

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

Code: Alles auswählen

import sys


Gruß, mawe
annihilation
User
Beiträge: 6
Registriert: Sonntag 26. September 2004, 22:37

Beitragvon annihilation » Montag 27. September 2004, 14:50

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
rogen

Beitragvon rogen » Montag 27. September 2004, 14:57

hier hilft SuFu weiter :)
FiRe^
User
Beiträge: 14
Registriert: Samstag 25. September 2004, 18:25

Beitragvon FiRe^ » Montag 27. September 2004, 16:02

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/")
annihilation
User
Beiträge: 6
Registriert: Sonntag 26. September 2004, 22:37

Beitragvon annihilation » Montag 27. September 2004, 16:21

Achso ok besten dank für die Antwort

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


mfg
annihilation
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Montag 27. September 2004, 17:09

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

Code: Alles auswählen

#!/usr/bin/env python
import this
RainBowBender
User
Beiträge: 53
Registriert: Dienstag 6. April 2004, 10:33

Beitragvon RainBowBender » Dienstag 28. September 2004, 05:51

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.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Tholo