2011-09-16 29 views
9

के माध्यम से सी # में एनएलटीके का उपयोग करके मैं विजुअल स्टूडियो 2010 का उपयोग कर रहा हूं। मेरे पास आयरनपीथन कंसोल प्रोजेक्ट और सी # कंसोल प्रोजेक्ट है। यह IronPython स्क्रिप्ट ठीक काम करता है जब मैं यह अपने आप में चलाएँ:आयरनपीथन

import nltk 

def Simple(): 
    baconIpsumFile = open('baconipsum.txt', 'r') 
    baconIpsumCorpus = baconIpsumFile.read() 

    tokens = nltk.word_tokenize(baconIpsumCorpus) 
    text = nltk.Text(tokens) 
    print text 

यहाँ सी # कंसोल कार्यक्रम है, जो ठीक से काम नहीं करता है:

using IronPython.Hosting; 

namespace IronNLTK.CSharp.Console 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var ipy = Python.CreateRuntime(); 
      dynamic test = ipy.UseFile("C:\\Path\\To\\Program.py"); 
      test.Simple(); 
     } 
    } 
} 

मैं एक ImportException: No module named nltk मिलता है। मैं क्या खो रहा हूँ?

+1

क्या आप 'ipy' रनटाइम से बातचीत कर सकते हैं और वहां पथ समायोजित कर सकते हैं? – Travis

+0

मैंने यह भी कोशिश की है। अर्थात। http://stackoverflow.com/questions/1371994/importing-external- मॉड्यूल-in-ironpython –

उत्तर

3

लगता है कि आपको जहां भी एनएलटीके रहता है, इंगित करने के लिए sys.path को अपडेट करने की आवश्यकता है।

जांच यह पता: Importing external module in IronPython

+0

में स्वीकृत उत्तर यदि आपका मतलब sys.path.append (आर "सी: \ प्रोग्राम फ़ाइलें (x86) \ IronPython \ लिब ") जो –

+1

काम नहीं करता है बेशक यह काम नहीं करता है। बैकस्लैश स्ट्रिंग एस्केप कैरेक्टर है। यदि आप पाइथन स्ट्रिंग में पथ डालना चाहते हैं, तो आपको सी:/प्रोगर ... या सी: \\ प्रोग्र ... –

+1

इसके अलावा, पोर्टेबल सॉफ़्टवेयर के पथों में कोई समस्या नहीं है जिसमें नाम में रिक्त स्थान हैं। क्या आपने C: \ IronPython में IronPython का एक और उदाहरण स्थापित करने का प्रयास किया है ताकि आपके पास नामों में स्थान के साथ कोई निर्देशिका न हो? –

0

बहुत बढ़िया खबर है, विजुअल स्टूडियो 2017 एनाकोंडा के अजगर वितरण जो NTLK और अन्य मशीन सीखने संकुल के साथ एम्बेडेड है।