2011-09-16 12 views
9

Używam programu Visual Studio 2010. Mam projekt konsoli IronPython i projekt konsoli C#. Ten skrypt IronPython działa poprawnie, gdy uruchomię go sama:Używanie NLTK w języku C# przez IronPython

import nltk 

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

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

Oto program konsoli C#, który nie działa prawidłowo:

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

dostaję ImportException: No module named nltk. czego mi brakuje?

+1

Czy możesz korzystać z środowiska wykonawczego 'ipy' i dostosowywać ścieżkę? – Travis

+0

Próbowałem również. To znaczy. zaakceptowana odpowiedź w http://stackoverflow.com/questions/1371994/importing-external-module-in-ironpython –

Odpowiedz

3

Wygląda na to, że musisz zaktualizować sys.path, aby wskazywał gdziekolwiek mieszka NLTK.

to check out: Importing external module in IronPython

+0

jeśli masz na myśli coś takiego jak sys.path.append (r "c: \ Program Files (x86) \ IronPython \ Lib "), który nie działa albo –

+1

Oczywiście to nie działa. Backslash to znak ucieczki ciągu. Jeśli chcesz umieścić ścieżkę w łańcuchu Pythona, musisz wykonać C:/Progr ... lub C: \\ Progr ... –

+1

Co więcej, oprogramowanie przenośne może mieć problem ze ścieżkami. które zawierają spacje w nazwie. Czy próbowałeś zainstalować kolejną instancję IronPython w C: \ IronPython, aby nie mieć żadnych katalogów z spacjami w nazwach? –

0

Niesamowite wieści, Visual Studio 2017 jest wbudowane w dystrybucji Python Anaconda, która ma NTLK i inne pakiety uczenia maszynowego.

Powiązane problemy