Seite 1 von 1
"import" findet Datei nicht
Verfasst: Samstag 30. Dezember 2006, 01:26
von Misal
Hallo
Ich bin eigentlich kein Programmierer, sondern brauche Python nur um mit dem Synthesizerprogramm "Csound" arbeiten zu können. Ich arbeite mit Windows XP.
Ich möchte eine Datei mit "Python Shell" mit dem Befehl "import" importieren. Stattdessen kommt immer folgende Meldung:
Code: Alles auswählen
>>> import CsoundVST #CsoundVST würde ich gerne importieren
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
import CsoundVST
File "C:\csound\bin\CsoundVST.py", line 5, in <module>
import _CsoundVST
ImportError: No module named _CsoundVST
Den Pfad "PYTHONPATH" habe ich mittels "Umgebungsvariablen" unter "Systemsteuerung" auf "C:\csound\bin" definiert. Ich bin auch sicher, dass eine CsoundVST.py-Datei in diesem Ordner existiert.
Wenn ich
eingebe, hat "Python Shell" kein Problem, obwohl ich diese Datei unter "C:\csound\bin" nicht finden kann.
Vielen Dank für eine Antwort.
Verfasst: Samstag 30. Dezember 2006, 05:16
von Sr4l
Hallo,
Wenn ich .py Datein importieren die in einem anderen Ordner liegen mach ich folgendes:
Code: Alles auswählen
#! /usr/bin/env python2
#-*- coding: latin-1 -*-
import sys
sys.path.append("C:/pfad")
import lib
nützlich dabei ist sys.platform, wenn man immer zwischen Windows und Linux wechselt und auch die pfade der importierten Datein ändern:
Code: Alles auswählen
if sys.platform=="win32":
sys.path.append("C:/pfad")
...
else:
sys.path.append("/var/local")
...
Wobei er bei dir ja die CsoundVST importiert. Nur die _CsoundVST die in CsoundVST importiert wird findet er nicht. liegt _CsoundVST vielleicht wieder in einem andern Verzeichnis oder gibt es sie nicht?
Soweit ich weiß importiert Python seine eigenen Bibliotheken aus dem Ordner PYTHON_INSTALL_DIR/Lib immer fehlerfrei weil er dort immer sucht. So Bibliotheken wie re, time oder sys sollten oder erher dürfen nicht solche Fehler verursachen.
mfG
Verfasst: Mittwoch 29. Oktober 2008, 18:39
von Zaks
hallo
habe dieses Problem auch, da bei der Einführung von Python nun viele Testmodule angefallen sind.
habe ich mir einen neuen Ordner angelegt und dort alle Module rein kopiert, aber wenn ich nun bei IDLE folgendes eingebe
kommt immer die Ausgabe: kein Module vorhanden das so heißt.
kopiere ich das Module zurück nach /home/meinName/
findet IDLE es wieder.
wo ist der Fehler den ich mache?
Grüße Rene
Verfasst: Mittwoch 29. Oktober 2008, 20:07
von cofi
Der Fehler ist, dass der Pfad in dem das Modul liegt, nicht in der PYTHONPATH Env-Variable ist.
Das Sympton, dass die Module gefunden werden, wenn sie in deinem Home-Folder sind sollte dadurch erklärbar sein, dass Python zuerst im working path, d.h. im aktuellen Ordner sucht.
Verfasst: Mittwoch 29. Oktober 2008, 21:11
von Zaks
danke für die antwort
ja der path ist nicht mit dabei. kann ich dies ändern?
Verfasst: Mittwoch 29. Oktober 2008, 23:28
von cofi
Da gibts 2 Möglichkeiten:
- Anpassen der PYTHONPATH Env-Variable
- Anpassen der `sys.path' im Programm
->
Verfasst: Donnerstag 30. Oktober 2008, 09:36
von Zaks
danke jetzt geht es.
warum das nicht so in meinem Buch steht?dort wird das viel komplizierter erklärt.
Verfasst: Donnerstag 30. Oktober 2008, 09:51
von BlackJack
Wobei das jetzt IMHO nicht der "normale" Weg ist oder sein sollte. Entweder schmeisst man das mit das Anwendungsverzeichnis, so das es dort ohne Spielereien an `sys.path` gefunden wird, oder man installiert es ordentlich.
Verfasst: Donnerstag 30. Oktober 2008, 10:58
von Zaks
BlackJack hat geschrieben:oder man installiert es ordentlich.
das heißt??
python nicht ordentlich installiert, oder meist du was anderes?
Verfasst: Donnerstag 30. Oktober 2008, 11:20
von BlackJack
Ich meine das Paket oder Modul vom Drittanbieter sollte so installiert werden, das es ohne Änderungen an `sys.path` importiert werden kann.
Verfasst: Donnerstag 30. Oktober 2008, 12:14
von Leonidas
Also via ``easy_install Paket`` oder ``python setup.py install``.
Verfasst: Donnerstag 30. Oktober 2008, 14:16
von Zaks
BlackJack hat geschrieben:Ich meine das Paket oder Modul vom Drittanbieter sollte so installiert werden, das es ohne Änderungen an `sys.path` importiert werden kann.
also immer in einen vorhandenen Path ablegen?
Leonidas hat geschrieben:Also via ``easy_install Paket`` oder ``python setup.py install``.
Danke, aber Python ist in meiner Distribution schon von Haus aus dabei.das einzige was ich Installiert habe war IDLE.
grüße Zaks
Verfasst: Donnerstag 30. Oktober 2008, 16:44
von cofi
Es geht um die installierten Module, nicht um Python, da es ja funktioniert hat das deine Distribution schon richtig gemacht
In einen Pfad, der schon von Python abgesucht - am besten `/usr/lib/python*/site-packages' - wird oder in den Pfad in dem die Anwendung auch liegt - aber das steht hier ja schon alles.
Verfasst: Donnerstag 30. Oktober 2008, 17:24
von Zaks
ok
habe verstanden
danke allen
Grüße Rene