Sto provando a eseguire uno script Python usando exec() da PHP. Il mio comando funziona bene quando lo eseguo direttamente utilizzando una finestra cmd
, ma genera un errore quando lo eseguo da exec()
in PHP.Qual è la differenza tra l'esecuzione di uno script dalla riga di comando e da exec() con PHP?
Lo script My Python utilizza NTLK per trovare nomi propri. Comando di esempio:
"C:\Python25\python.exe" "C:\wamp\projects\python\trunk\tests\find_proper_nouns.py" "I went to London this morning"
rendimenti [London]
quando l'eseguo da cmd
, ma genera un errore in Apache log quando si esegue lo stesso comando da exec()
.La script è sicuramente sempre run OK - se cambio lo script python essere print "Hello World"
che viene restituito bene.
so che è un grande chiedere a chiunque di sapere come risolvere questo errore NLTK, ma ho potuto davvero fare con tutti gli indicatori sul motivo per cui l'esecuzione da exec
è diverso da cmd
. (Il comando è identico).
Sto eseguendo WAMP su Windows 7 con Apache 2.2.11.
Ecco l'errore nel log di Apache:
Traceback (most recent call last):
File "C:\wamp\projects\python\trunk\tests\find_proper_nouns_command_line.py", line 6, in <module>
parts = nltk.pos_tag(text)
File "C:\Python25\lib\site-packages\nltk\tag\__init__.py", line 62, in pos_tag
tagger = nltk.data.load(_POS_TAGGER)
File "C:\Python25\lib\site-packages\nltk\data.py", line 590, in load
resource_val = pickle.load(_open(resource_url))
File "C:\Python25\lib\site-packages\nltk\data.py", line 669, in _open
return find(path).open()
File "C:\Python25\lib\site-packages\nltk\data.py", line 451, in find
raise LookupError(resource_not_found)
LookupError:
**********************************************************************
Resource 'taggers/maxent_treebank_pos_tagger/english.pickle' not
found. Please use the NLTK Downloader to obtain the resource:
>>> nltk.download().
Searched in:
- 'C:\\nltk_data'
- 'D:\\nltk_data'
- 'E:\\nltk_data'
- 'C:\\Python25\\nltk_data'
- 'C:\\Python25\\lib\\nltk_data'
- 'C:\\Windows\\system32\\config\\systemprofile\\AppData\\Roaming\\nltk_data'
**********************************************************************
Volevo solo sottolineare che poiché è Python, non avrete bisogno di un punto e virgola alla fine della seconda riga. – Gaurang