Каково различие между запущением скрипта из командной строки и от должностного лица () с PHP?

Я пытаюсь запустить скрипт Python с помощью должностного лица () из PHP. Моя команда хорошо работает, когда я выполняю ее непосредственно использующий a cmd окно, но это производит ошибку, когда я выполняю его от exec() в PHP.

Мой сценарий Python использует NTLK для нахождения имен собственных. Команда Example:

"C:\Python25\python.exe" "C:\wamp\projects\python\trunk\tests\find_proper_nouns.py" "I went to London this morning" 

возвраты [London] когда я выполняю его от cmd, но бросает ошибку в журнал Apache, когда я выполняю ту же команду от exec()Сценарий.The определенно становится выполненным хорошо - если я изменяю сценарий Python, чтобы быть print "Hello World" это возвращается прекрасное.

Я знаю, что это - большое, просят любого знать, как зафиксировать эту ошибку NLTK, но я мог действительно сделать с любыми указателями относительно почему выполнение его от exec отличается от cmd. (Команда идентична).

Я выполняю WAMP в Windows 7 с Apache 2.2.11.

Вот ошибка в журнале Apache:

Traceback (most recent call last):
  File "C:\wamp\projects\python\trunk\tests\find_proper_nouns_command_line.py", line 6, in 
    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'
**********************************************************************

7
задан Roy 18 February 2010 в 13:55
поделиться

1 ответ

Ваш веб-сервер, вероятно, работает с другими привилегиями, кроме вас. Возможные проблемы включают:

  • Путь / разрешение файла: может ли пользователь веб-сервера получить доступ к нужным файлам?
  • Другая среда: установлены ли все необходимые переменные среды (PATH, специфичные для Python вещи,…)?
  • Конфигурация : существуют ли индивидуальные конфигурации для Python или модуля?

Совет: выполните set как в командной строке, так и из процесса PHP и проверьте различия.

2
ответ дан 6 December 2019 в 05:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: