我想在PHP中使用exec()來運行Python腳本。當我直接使用cmd
窗口運行它時,我的命令工作正常,但是當我在PHP中使用exec()
運行它時會產生錯誤。從命令行和exec()與PHP運行腳本有什麼區別?
我的Python腳本使用NTLK來查找專有名詞。例如命令:
"C:\Python25\python.exe" "C:\wamp\projects\python\trunk\tests\find_proper_nouns.py" "I went to London this morning"
回報,當我從cmd
運行它,但在Apache的拋出一個錯誤,當我從exec()
運行相同的選指令,腳本defintely越來越運行正常登錄[London]
- 如果我改變了python腳本是print "Hello World"
這是很好的回報。
我知道如何解決這個NLTK錯誤是一個很大的問題,但我真的可以做任何指示,爲什麼從exec
運行它不同於cmd
。 (該命令是相同的)。
我使用Apache 2.2.11在Windows 7上運行WAMP。
這裏是在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'
**********************************************************************
只是想指出,因爲它是Python,所以在第二行末尾不需要分號。 – Gaurang 2014-11-03 06:09:29