2014-09-23 25 views
16

मैं अपने आवेदन में एक पायथन फ़ाइल आयात करने की कोशिश कर रहा हूं जो कि अजगर में लिखा गया है।पायथन/आयात त्रुटि: फ़ाइल नाम द्वारा आयात समर्थित नहीं है

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

पिरामिड में एक मार्ग जोड़ने की कोशिश करते समय यह त्रुटि भी उठाई जाती है और आप सामान्य मार्ग पथ को दूसरे पैरा के रूप में नहीं डालते मीटर। उदाहरण: config.add_route ('admin_ajax_get_items', 'admin_ajax_get_items', 'admin_ajax_get_items') config.add_route ('admin_ajax_get_items', '/ url/path') के बजाय –

उत्तर

14

के बजाय कर __import__ की तरह एक आयात आप कह सकते हैं

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

मैं निम्नलिखित कोड है

+0

क्या इसका मतलब है कि मुझे उस फ़ोल्डर को जोड़ने के लिए मजबूर होना पड़ता है जहां पैकेज कार्य करता है मैं भागना चाहता हूँ पर स्थित हैं? कहें कि एक ऐसा फ़ंक्शन है जिसे मैं '..' में चलाने के लिए चाहता हूं, क्या उस समारोह को ** किसी भी ** तरीके से आयात करने का कोई तरीका है? – Pinocchio

+2

वास्तव में प्रश्न का उत्तर नहीं देता है, और आम तौर पर पाइथन मॉड्यूल के भीतर आपके सिस्टम पथ को संशोधित करने के बेहद खराब अभ्यास को बढ़ावा देता है। –

+5

ऐसा करने का सही तरीका क्या है? – Sajuuk

संबंधित मुद्दे