Estoy tratando de ejecutar un script de Python usando exec() desde PHP. Mi comando funciona bien cuando lo ejecuto directamente usando una ventana cmd
, pero produce un error cuando lo ejecuto desde exec()
en PHP.¿Cuál es la diferencia entre ejecutar un script desde la línea de comandos y desde exec() con PHP?
La secuencia de comandos My Python usa NTLK para encontrar los nombres propios. Comando de ejemplo:
"C:\Python25\python.exe" "C:\wamp\projects\python\trunk\tests\find_proper_nouns.py" "I went to London this morning"
vuelve [London]
cuando lo ejecuto desde cmd
, pero genera un error en el registro de Apache cuando corro el mismo comando de exec()
.La escritura es cada vez definitivamente plazo OK - si cambio de la secuencia de comandos de Python ser print "Hello World"
que se devuelve bien.
Sé que es una gran pregunta para que alguien sepa cómo solucionar este error NLTK, pero realmente podría hacer con cualquier punteros sobre por qué ejecutarlo desde exec
es diferente a cmd
. (El comando es idéntico).
Estoy ejecutando WAMP en Windows 7 con Apache 2.2.11.
Aquí está el error en el registro de 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'
**********************************************************************
Solo quería señalar que, dado que es Python, no necesitará un punto y coma al final de la segunda línea. – Gaurang