import von modulen

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
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Dienstag 2. August 2005, 14:54

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
ProgChild
User
Beiträge: 210
Registriert: Samstag 9. April 2005, 10:58
Kontaktdaten:

Dienstag 2. August 2005, 15:20

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.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Dienstag 2. August 2005, 15:37

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.
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Dienstag 2. August 2005, 19:54

Ich würde das nicht hart codieren, sondern den PYTHONPATH erweitern, oder das ganze gleich ins site-packages zu legen.

fs111
Pydoc-Integration in vim - Feedback willkommen: http://www.vim.org/scripts/script.php?script_id=910
BlackJack

Dienstag 2. August 2005, 23:35

Haaallloooo, '\' in literalen Zeichenketten haben eine besondere Bedeutung.

Code: Alles auswählen

import sys 
sys.path.append(r"F:\scripts\python\console\") 
import xcopy 
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 3. August 2005, 00:56

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Mittwoch 3. August 2005, 01:46

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?
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Mittwoch 3. August 2005, 06:52

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
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 3. August 2005, 10:59

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

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten