2014-09-23 5 views
16

Ich versuche eine Python-Datei in meine Anwendung zu importieren, die in Python geschrieben ist.Python/ImportError: Import nach Dateiname wird nicht unterstützt

Ich habe den folgenden Code:

import os 
from os.path import basename 

class specificClass: 
    def dothing(self,path): 
      runcommand = __import__("/root/"+ os.path.splitext(os.path.basename(path))[0]+ "/" + os.path.splitext(os.path.basename(path))[0] +"/sa/update.py") 
      runcommand.main() 

Wenn ich es laufen, es mir die folgende Störung gibt:

ImportError: Import by filename is not supported. 
+0

Dieser Fehler tritt auch beim Versuch auf, eine Route in Pyramide hinzuzufügen, und Sie legen den normalen Routenpfad nicht als 2nd para fest Meter. Beispiel: config.add_route ('admin_ajax_get_items', 'admin_ajax_get_items') anstelle von config.add_route ('admin_ajax_get_items', '/ url/path') –

Antwort

14

Stattdessen wird ein Import wie __import__ tun kann man sagen,

import sys 
sys.path.append(path) # this is where your python file exists 
import update 
+0

bedeutet das, dass ich gezwungen bin, den Ordner hinzuzufügen, in dem das Paket funktioniert Ich möchte laufen bei sind? Sagen Sie, dass es eine Funktion gibt, die ich in '..' ausführen möchte, gibt es eine Möglichkeit, diese Funktion in ** irgendeiner ** Weise zu importieren? – Pinocchio

+2

Beantwortet die Frage nicht wirklich und fördert generell eine extrem schlechte Praxis, Ihren Systempfad innerhalb von Python-Modulen zu ändern. –

+5

Was ist der richtige Weg, dies zu tun? – Sajuuk

Verwandte Themen