Использование rpy в приложении django создает исключение RPy_Exception: R функция "get" не найдена
Вот трассировка (копия вставлена):
Traceback Switch to copy-and-paste view
/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py in get_response
response = middleware_method(request) ...
▶ Local vars
/usr/local/lib/python2.6/dist-packages/django/middleware/common.py in process_request
if (not _is_valid_path(request.path_info, urlconf) and ...
▶ Local vars
/usr/local/lib/python2.6/dist-packages/django/middleware/common.py in _is_valid_path
urlresolvers.resolve(path, urlconf) ...
▶ Local vars
/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py in resolve
return get_resolver(urlconf).resolve(path) ...
▶ Local vars
/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py in resolve
sub_match = pattern.resolve(new_path) ...
▶ Local vars
/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py in resolve
sub_match = pattern.resolve(new_path) ...
▶ Local vars
/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py in resolve
return ResolverMatch(self.callback, args, kwargs, self.name) ...
▶ Local vars
/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py in _get_callback
self._callback = get_callable(self._callback_str) ...
▶ Local vars
/usr/local/lib/python2.6/dist-packages/django/utils/functional.py in wrapper
result = func(*args) ...
▶ Local vars
/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py in get_callable
lookup_view = getattr(import_module(mod_name), func_name) ...
▶ Local vars
/usr/local/lib/python2.6/dist-packages/django/utils/importlib.py in import_module
__import__(name) ...
▶ Local vars
/home/harsh/minip-server/website/Video_Performance/views.py in <module>
import datetime,rpy ...
▶ Local vars
/usr/lib/python2.6/dist-packages/rpy.py in <module>
r = R() ...
▶ Local vars
/usr/lib/python2.6/dist-packages/rpy.py in __init__
self.get = _rpy.get_fun('get') # this must happen before any calls to self or its methods! ...
▶ Local vars
Любая подсказка?
РЕДАКТИРОВАТЬ: вот код
import rpy
не поймите меня неправильно, это строка, по которой идет ошибка. Я попробовал на отдельном Python приглашение и там import rpy
не подведет. Только на сайте не получается. Зачем?
1 ответ
Решение
Это может быть многопоточность. Параллельный доступ к R плох (в смысле "не пересекать потоки, это было бы плохо"). rpy2 имеет механизм блокировки, который должен вызывать исключение всякий раз, когда это происходит.