Seite 1 von 1

import von modulen

Verfasst: Dienstag 2. August 2005, 14:54
von alpha
Hallo Leute,

mal zu Abwechslung ne (hoffentlich) ganz einfache Frage von mir.
Wie kann ich ein Modul, dass auf nem Netzlaufwerk liegt z.B.:
F:\scripts\python\console\xcopy.py in mein Programm importieren.

Mit der Pythonhilfe komm ich in diesem Fall nicht klar.

Danke schonmal.

alpha

Verfasst: Dienstag 2. August 2005, 15:20
von ProgChild
Mit import kannst du, so weit ich weis, nur aus dem gleichen Verzeichniss, oder einem darunter liegenden Verzeichniss importieren. Mach doch einfach in dem Verzeichniss mit dem Python Script einen Link zu dem Ordner auf dem Netzlaufwerk, oder gleich zu dem script.

Wenn dir das nicht gefällt, dann musst du dir mal __import__ anschauen.

Verfasst: Dienstag 2. August 2005, 15:37
von CM
Nein, man kann auch aus höher liegenden Verzeichnissen importieren oder um die Ecke importieren ("eins hoch und dann im Nachbarverzeichnis eins runter"). Aber im konkreten Fall möchte ich vorschlagen:

Code: Alles auswählen

import sys
sys.path.append("F:\scripts\python\console\")
import xcopy
Bin mir nicht sicher, ob das funktioniert oder wie stabil das unter Windows ist, aber hast Du das schon probiert?

Gruß,
Christian

edit: PS keine Ahnung, warum es diese Zusatzzeichen nach der "console" hat - ich habe versucht sie zu löschen, aber ohne Erfolg.

EDIT by mawe zu CM's edit: hab den path in " " gesetzt. Die Zeichen sind jetzt weg.

Verfasst: Dienstag 2. August 2005, 19:54
von fs111
Ich würde das nicht hart codieren, sondern den PYTHONPATH erweitern, oder das ganze gleich ins site-packages zu legen.

fs111

Verfasst: Dienstag 2. August 2005, 23:35
von BlackJack
Haaallloooo, '\' in literalen Zeichenketten haben eine besondere Bedeutung.

Code: Alles auswählen

import sys 
sys.path.append(r"F:\scripts\python\console\") 
import xcopy 

Verfasst: Mittwoch 3. August 2005, 00:56
von Leonidas
Ich biete Escape-Escaping :wink:, wo wir grad bei dem Thema sind:

Code: Alles auswählen

import sys
sys.path.append("F:\\scripts\\python\\console\\")
import xcopy
Aber ich persönlich hätte es entweder zu dem Programm kopiert, dass das Modul xcopy nutzt oder wenn es mehrere Programme nutzen sollen in site-packages geschoben.

Verfasst: Mittwoch 3. August 2005, 01:46
von Joghurt
CM hat geschrieben:Nein, man kann auch aus höher liegenden Verzeichnissen importieren oder um die Ecke importieren ("eins hoch und dann im Nachbarverzeichnis eins runter").
Da bin ich jetzt neugierig! Wie?

Verfasst: Mittwoch 3. August 2005, 06:52
von alpha
Danke CM, genau sowas hatte ich gesucht.
Für mich ist das jetzt nur zum Testen. Nachher wenn das Ganze feritig
ist sind natürlich alle Module die von mir sind und nur für das eine Programm gebraucht werden auch im Programmpfad.

Gruss
alpha

Verfasst: Mittwoch 3. August 2005, 10:59
von jens
Ich würde statt append lieber insert nehmen!

Code: Alles auswählen

import sys
sys.path.insert( 0, r"F:\scripts\python\console\" )
import xcopy