C# 没有名为fcntl的模块
我正在尝试使用IronPython 2.7在.NET4.0上使用IronPython执行此方法。我正在使用Windows7C# 没有名为fcntl的模块,c#,module,compiler-errors,ironpython,fcntl,C#,Module,Compiler Errors,Ironpython,Fcntl,我正在尝试使用IronPython 2.7在.NET4.0上使用IronPython执行此方法。我正在使用Windows7 import os import re import nltk import urllib import xapian import sys def getData(url): try: html = urllib.urlopen(url) text = html.read() html.close()
import os
import re
import nltk
import urllib
import xapian
import sys
def getData(url):
try:
html = urllib.urlopen(url)
text = html.read()
html.close()
except:
return "error"
try:
return nltk.clean_html(text) #takes the tokens
except:
return text
C#代码:
有人能告诉我我做错了什么吗?我一直认为我没有fcntl模块(平台:Unix),因此您可能运气不好,可能(或可能没有)有帮助……我认为到目前为止,您最简单的解决方案是切换到CPython。我不认为它的集成度会比您现有的解决方案低,而且您可以避免丢失模块带来的所有麻烦。当我遇到这个问题时,问题是我在搜索路径中只有我的CPython libs(我以前在CPython中安装了NLTK),而没有IronPython libs 在我的C代码中,我现在有了
engine.SetSearchPaths(new string[] {"C:\\Program Files\\IronPython 2.7\\Lib"
,"C:\\Python27\\Lib"
,"C:\\Python27\\Lib\\site-packages"
});
当我对这个问题摸不着头脑时,我注意到我无意中输入了2.7.1作为我的IronPython路径,即一个不存在的目录。哦,我刚刚注意到OP在他们的源代码中有一个类似的搜索路径条目,也许也可以是搜索路径的顺序
对于处于类似位置的人来说,有用的线索:我注意到我的NLTK使用代码在从ipy.exe加载时工作得很好,因此不存在可移植性问题…(并且NLTK源代码在任何地方都不包含字符串fcntl)遇到了完全相同的问题,在我按如下方式订购导入和sys.path.append之前,一切都不起作用:
sys.path.append(“C:\\Program Files\\IronPython 2.7\\Lib”)
sys.path.append(“C:\\Program Files\\IronPython 2.7\\Lib\\site包”)
sys.path.append(“C:\\Python27\\Lib”)
sys.path.append(“C:\\Python27\\Lib\\site包”)
是的,我也这么想。你能指出fcntl将在哪里使用吗?因为当我使用Python26执行这个方法时,它工作得很好,当你说Python26时,你是指CPython吗?我不确定。我用空闲的GUI Python 2.6编译了它。我有点困惑,因为我一直试图删除代码的几个部分,以查看fcntl信号是如何发出的,但我运气不好。我检查了它,nltk给出了fcntl信号。。所以如果我在windows操作系统上,我就不能使用它了?
engine.SetSearchPaths(new string[] {"C:\\Program Files\\IronPython 2.7\\Lib"
,"C:\\Python27\\Lib"
,"C:\\Python27\\Lib\\site-packages"
});
import sys
sys.path.append("X:\Python27x64")
sys.path.append("X:\Python27x64\DLLs")
sys.path.append("X:\Python27x64\Lib")
sys.path.append("X:\Python27x64\Lib\site-packages")
sys.platform = "win32"
import nltk