使用mod_python运行jpype的问题

时间:2010-10-13 07:30:48

标签: java python mod-python

由于Python的urllib模块太慢,我在我的网站上使用了用JPype包装的Java代码。当我使用Django Web服务器测试我的网站时,没有问题。但是,当我将Web服务器切换到apache2 + mod_python时,会发生以下错误。我google了很多次但找不到答案。有没有解决错误的方法?

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 :(得分:0)

您原始问题的另一种解决方案:找到其他方法来获取更快的网址检索。

httplib2可能已经是一个很好的解决方案:没有问题让它工作,因为它只是一个python库,但是对Keep-Alive连接的支持可以加速很多事情,加上缓存支持也会有所帮助(但是,只有当你经常要求相同的网址时)。而且它非常易于使用。

如果这不能让你得到:PyCurl,libcurl的python绑定可能是最明显的选择(还有包装使PyCurl更容易使用,因为PyCurl显然有点低 - 水平)。

无论如何,只是说有些选项不需要java,更容易使用(而且可能会更快)