2014-09-23 17 views
16

Python'da yazılan bir python dosyasını uygulamaya aktarmaya çalışıyorum. Onu çalıştırdığınızda, bana aşağıdaki hatayı veriyorPython/ImportError: Dosya adıyla içe aktarma desteklenmiyor

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

:

ImportError: Import by filename is not supported. 
+0

Bu hata piramidin içine bir rota eklemeye çalışırken de yükseltilir ve normal yol yolunu 2. para olarak yazmazsınız. metre. Örnek: config.add_route ('admin_ajax_get_items', 'admin_ajax_get_items') config.add_route ('admin_ajax_get_items', '/ url/yol') yerine –

cevap

14

yerine yapıyor __import__ gibi bir ithalat Eğer

import sys 
sys.path.append(path) # this is where your python file exists 
import update 
söyleyebiliriz

Aşağıdaki kod var

+0

, bu, paketin çalıştığı klasörün yoluna eklemeye zorlandığım anlamına mı geliyor? Koşmak istiyorum? Çalıştırmak istediğim tek bir işlev var ki '' ', bu işlevi ** herhangi bir şekilde içe aktarmak için bir yol var mı? – Pinocchio

+2

Aslında bu soruyu yanıtlamıyor ve genellikle sistem yolunuzu python modülleri içinde değiştirmenin son derece kötü bir uygulamasını destekliyor. –

+5

Bunu yapmanın doğru yolu nedir? – Sajuuk

İlgili konular