проблема с запуском jpype с mod_python - PullRequest
0 голосов
/ 13 октября 2010

Поскольку модуль Pyll urllib работает слишком медленно, я использую код Java, завернутый в JPype, на моем веб-сайте.Когда я тестировал свой веб-сайт с веб-сервером Django, проблем не было.Однако, когда я переключил веб-сервер на apache2 + mod_python, возникает следующая ошибка.Я гуглил много раз, но не смог найти ответ.Есть ли какое-нибудь решение этой ошибки?

MOD_PYTHON ERROR
ProcessId:      4831
Interpreter:    'localhost'
ServerName:     'localhost'
DocumentRoot:   '/home/www/mysite'
URI:            '/javamodule.py/'
Location:       '/'
Directory:      None
Filename:       '/home/www/mysite/javamodule.py'
PathInfo:       '/'
Phase:          'PythonHandler'
Handler:        'django.core.handlers.modpython'

Traceback (most recent call last):

  File "/usr/lib/python2.6/dist-packages/mod_python/importer.py", line 1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File "/usr/lib/python2.6/dist-packages/mod_python/importer.py", line 1229, in _process_target
    result = _execute_target(config, req, object, arg)

  File "/usr/lib/python2.6/dist-packages/mod_python/importer.py", line 1128, in _execute_target
    result = object(arg)

  File "/usr/lib/pymodules/python2.6/django/core/handlers/modpython.py", line 228, in handler
    return ModPythonHandler()(req)

  File "/usr/lib/pymodules/python2.6/django/core/handlers/modpython.py", line 183, in __call__
    os.environ.update(req.subprocess_env)

  File "/usr/lib/python2.6/os.py", line 486, in update
    self[k] = dict[k]

  File "/usr/lib/python2.6/os.py", line 471, in __setitem__
    putenv(key, item)

1 Ответ

0 голосов
/ 13 октября 2010

Другое решение вашей исходной проблемы: найдите другие способы, чтобы ускорить получение URL.

httplib2 может уже быть хорошим решением: нет проблем с тем, чтобы заставить его работать, поскольку это всего лишь библиотека Python, но поддержка соединений Keep-Alive может значительно ускорить процесс, плюс кешированиеПоддержка тоже поможет (но только если вы, конечно, часто запрашиваете тот же URL).И это очень просто в использовании.

Если это не слишком далеко для вас: PyCurl , вероятно, наиболее очевидным выбором является привязка Python для libcurl (есть также обертки для создания PyCurlпроще в использовании, так как PyCurl, очевидно, немного низкого уровня).

В любом случае, просто чтобы сказать, что есть опции, которые не требуют Java, которые легче начать работать (и это, вероятно, также закончится быстрее)

...