2010-10-13 4 views
0

Поскольку модуль urllib Python работает слишком медленно, я использую Java-код, завернутый в JPype на моем веб-сайте. Когда я протестировал свой веб-сайт на веб-сервере Django, проблем не было. Однако, когда я переключил веб-сервер на apache2 + mod_python, возникает следующая ошибка. Я много раз искал Google, но не мог найти ответ. Есть ли какое-либо решение ошибки?проблема с запуском jpype с 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

@ user433498: Можете ли вы предоставить полную отслеживающий. Это не похоже на полную трассировку. – pyfunc

ответ

0

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

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

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

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

+0

Спасибо, Стивен. – user433498

Смежные вопросы