/usr/lib/python2.7/subprocess.py OSError: [Errno 2] No such file or directory
Question: I'm trying to use MEGAM with NLTK.

This is my code:

    
    
    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))
    

When running the file the output is:

    
    
        [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
    

But the file subprocess.py exists.

Any hints or suggestions?


Answer: It is not about `subprocess.py` file. `subprocess.Popen()` starts a
subprocess. Check that `cmd` is in `$PATH`. You probably need to install some
command-line utility to use `MaxentClassifier`.

