/usr/lib/python2.7/subprocess.py OSError:[Errno 2]没有这样的文件或目录

时间:2014-01-06 16:49:33

标签: python subprocess nltk

我正在尝试使用MEGAM和NLTK。

这是我的代码:

import nltk
import os
megam_path = os.path.expanduser("~/nltk_data/megam_i686.opt")
nltk.config_megam(megam_path)
me_classifier = MaxentClassifier.train(train_feats,     algorithm='megam')
print me_classifier.show_most_informative_features(n=4)
print("accuracy of Maxent Classifier :  ",   accuracy(me_classifier, test_feats))

运行文件时输出为:

    [Found /home/ubuntu/nltk_data/megam_i686.opt:     /home/ubuntu/nltk_data/megam_i686.                       opt]
    Traceback (most recent call last):
      File "./classifying.py", line 494, in <module>
        me_classifier = MaxentClassifier.train(train_feats,   algorithm='megam')
      File "/usr/local/lib/python2.7/dist-    packages/nltk/classify/maxent.py", line 31                       9,     in train
        gaussian_prior_sigma, **cutoffs)
      File "/usr/local/lib/python2.7/dist-
packages/nltk/classify/maxent.py", line 15                          22, in train_maxent_classifier_with_megam
        stdout = call_megam(options)
      File "/usr/local/lib/python2.7/dist- packages/nltk/classify/megam.py", line 167                       ,     in call_megam
        p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
      File "/usr/lib/python2.7/subprocess.py", line 679, in    __init__
        errread, errwrite)
      File "/usr/lib/python2.7/subprocess.py", line 1249, in     _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory

但文件subprocess.py存在。

任何提示或建议?

1 个答案:

答案 0 :(得分:0)

不是subprocess.py文件。 subprocess.Popen()启动子流程。检查cmd是否在$PATH。您可能需要安装一些命令行实用程序才能使用MaxentClassifier