5

我正在使用 Windows 8,并在 Eclipse 中使用 pyDev 运行 python。

我从以下站点安装了 Stanford coreNLP(python 版本): https ://github.com/relwell/stanford-corenlp-python

当我尝试导入 corenlp 时,我收到以下错误消息。

Traceback (most recent call last):
  File "C:\Users\Ghantauke\workspace\PythonTest2\test.py", line 1, in <module>
    import corenlp
  File "C:\Python27\lib\site-packages\corenlp\__init__.py", line 13, in <module>
    from corenlp import StanfordCoreNLP, ParserError, TimeoutError, ProcessError
  File "C:\Python27\lib\site-packages\corenlp\corenlp.py", line 28, in <module>
    import pexpect
  File "C:\Python27\lib\site-packages\pexpect.py", line 85, in <module>
    support it. Pexpect is intended for UNIX-like operating systems.""")
ImportError: No module named resource

A critical module was not found. Probably this operating system does not
support it. Pexpect is intended for UNIX-like operating systems.

这是否意味着它的 python 分支在 Windows 中不起作用?有什么办法可以让它在windows中工作吗?

如果没有,那么您能否建议我可以在 Windows 中使用的其他替代方案。我只需要解析器。

4

1 回答 1

2

这是我尝试获取运行在 Windows Server 2012 上的CoreNLPcorenlp-python的 python 包装器的记录。

免责声明:如果您只需要运行可执行文件,请先检查此项。考虑subprocess

开始

由于corenlp-python使用pexpect量很大,并且该库仅适用于 UNIX,我的第一个想法是找到一个 Windows 端口。

wexpect.py相当容易找到,并声称是 Pexpect 的替代品(强调我的):

为了使用 WExpect,您必须安装 CygWin,然后将 WExpect 脚本安装到您​​的系统中(将 py 文件放到您的工作目录中通常就足够了)。我发现功能几乎相同,因此您应该能够使用 PExpect 手册和示例并将它们应用于此 Microsoft Windows 变体。

所以我就是这样做的,下载并安装 CygWin,然后复制wexpect.pyC:\Python27\lib\所有其他库所在的位置。我尝试import wexpect从 Python shell 中进行操作,但遇到了与我第一次在 Windows 上尝试 Pexpect 时类似的错误:

ImportError: No module named pywintypes
This module requires the win32 python packages.

A critical module was not found. Probably this operating system does not
support it. Pexpect is intended for UNIX-like systems.

等你,我们期待吗?

无论如何,这是寻找等价物的标准挫败感。按下。

我打开wexpect.py并看到它只能pywintypes在 Windows 系统上尝试。合乎逻辑,所以我尝试了:

$ pip install -U pywintypes

...失败了,并引导我到谷歌获取 python Win32 包的名称(这个答案有帮助):

$ pip install -U pywin32

...提示--allow-external然后输入--allow-unverified,两者都需要包名,ergo:

$ pip install --allow-external pywin32 --allow-unverified pywin32 pywin32

当然,这不起作用。没有找到这样的包。

顺丰网

所以我开始在 PyPI 上搜索pywin32并意识到只剩下一个自述文件,我必须跳过四个更多的圈才能找到更实质性的东西,然后再多两个才能找到这个列表

我下载了 Build 219 for Python 2.7 32-bit。至少现在import wexpect不吐了。

你期待什么?

所以我corenlp-python再次运行命令,这次它不见了unidecode。这更容易修复,最后我进入了一个可用状态 - 一个错误,不少,但很熟悉 - JAR 的路径不正确。

好的。

当你运行时corenlp.py,因为pexpect被调用,记住import wexpect as pexpect靠近顶部并注释掉真正的import pexpect行,否则你会得到一个NameError

#import pexpect
import wexpect as pexpect

即使安装了 Java,无论路径如何,这似乎都不起作用。

$ python lib\corenlp\corenlp.py

它返回一个ExceptionPexpect.

于 2014-06-06T01:54:34.630 回答