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

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

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]#!/usr/bin/env python
import this[/code]
annihilation
User
Beiträge: 6
Registriert: Sonntag 26. September 2004, 22:37

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])

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

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
FiRe^
User
Beiträge: 14
Registriert: Samstag 25. September 2004, 18:25

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

Achso ok besten dank für die Antwort

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


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

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]#!/usr/bin/env python
import this[/code]
RainBowBender
User
Beiträge: 53
Registriert: Dienstag 6. April 2004, 10:33

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.
Antworten