当我尝试通过python corenlp.py
运行它时,为什么会收到此错误?
Traceback (most recent call last):
File "corenlp.py", line 23, in (module)
from winpexpect import winspawn
File "C:\Python27\1ib\site-packages\winpexpect-1.5-py2.7.egg\winpexpect.py", 1ine 391, in (module)
class winspawn(spawn):
TypeError: Error when calling the metaclass bases
function() argument 1 must be code, not str
但是,当我在PythonShell GUI中使用它时,它运行得很好。
from winpexpect import winspawn
child = winspawn('java -cp "C:\\Python27\\Scripts\\stanford-corenlp-full-2014-08-27\\*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,parse,dcoref -ner.model edu/stanford/nlp/models/ner/english.all.3class.caseless.distsim.crf.ser.gz')
答案 0 :(得分:1)
您在本地收到此错误,因为您的Python27没有安装必备组件。特别是它需要安装Pywin32。您需要从here下载并安装Pywin32(特别是在您的情况下为2.7版本)。 PythonShell GUI必须已安装此扩展程序才能正常工作。
答案 1 :(得分:0)
最后我能够解决我的问题(感谢@MichaelPetch)。我尝试了这个简单的例子test.py
from winpexpect import winspawn
child=winspawn("java")
工作正常。然后我意识到我的导入或依赖项有问题。我正在使用wexpect.py这是Windows的另一种选择。我将其重命名为pexpect.py
并复制到我的代码库。
但是winpexpect
依赖于pexpect(它在自己的文件夹上有另一个pexpect文件)。当我尝试通过cmd运行我的.py时,它指的是同一文件夹中的文件,这是pexpect,我刚刚重命名。
解决方案:我刚删除了wexpect
。