2011-09-16 93 views
9

我正在使用Visual Studio 2010.我有一个IronPython控制台项目和一个C#控制台项目。当我本身运行此脚本的IronPython正常工作:在C#中通过IronPython使用NLTK

import nltk 

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

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

这里是C#控制台程序,不很好地工作:

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

我也试过了。即如果你的意思是类似于sys.path.append(r“c:\ Program Files(x86)\ IronPython \”),则可以在http://stackoverflow.com/questions/1371994/importing-external-module-in-ironpython –

回答

3

听起来像你需要更新sys.path指向NLTK居住的任何地方。

检查了这一点:Importing external module in IronPython

+0

中接受答案。 Lib“)不起作用 –

+1

当然,这是行不通的。反斜线是字符串转义字符。如果你想把一个路径放在一个Python字符串中,那么你需要执行C:/ Progr ...或者C:\\ Progr ... –

+1

另外,便携式软件出现路径问题并不罕见名称中包含空格。您是否曾尝试在C:\ IronPython中安装另一个IronPython实例,以便在名称中没有任何具有空格的目录? –

0

真棒消息时,Visual Studio 2017内置有具有NTLK和其他机器学习包蟒蛇的Python发行。