#python #r #google-cloud-platform #rpy2 #gcp-ai-platform-notebook
#python #r #google-облачная платформа #rpy2 #gcp-ai-platform-notebook
Вопрос:
Я пытаюсь запустить функцию GLM библиотеки rstanarm. Я использую библиотеку rpy2 для подключения python к пакетам R. Ниже приведен код:
glm_post = rstanarm.stan_glm(formula, data=r_dataframe, prior=my_prior,iter=niter, chains=nchains, cores=cores)
Но я получаю эту ошибку в ноутбуке GCP AI:
/opt/conda/lib/python3.7/site-packages/rpy2/robjects/functions.py in __call__(self, *args, **kwargs)
197 kwargs[r_k] = v
198 return (super(SignatureTranslatedFunction, self)
--> 199 .__call__(*args, **kwargs))
200
201
/opt/conda/lib/python3.7/site-packages/rpy2/robjects/functions.py in __call__(self, *args, **kwargs)
123 else:
124 new_kwargs[k] = conversion.py2rpy(v)
--> 125 res = super(Function, self).__call__(*new_args, **new_kwargs)
126 res = conversion.rpy2py(res)
127 return res
/opt/conda/lib/python3.7/site-packages/rpy2/rinterface_lib/conversion.py in _(*args, **kwargs)
43 def _cdata_res_to_rinterface(function):
44 def _(*args, **kwargs):
---> 45 cdata = function(*args, **kwargs)
46 # TODO: test cdata is of the expected CType
47 return _cdata_to_rinterface(cdata)
/opt/conda/lib/python3.7/site-packages/rpy2/rinterface.py in __call__(self, *args, **kwargs)
675 )
676 if error_occured[0]:
--> 677 raise embedded.RRuntimeError(_rinterface._geterrmessage())
678 return res
679
RRuntimeError: Error in utils::browseURL(paste0("file://", sinkfile_html)) :
'browser' must be a non-empty character string
Комментарии:
1. Пожалуйста, не могли бы вы указать тип экземпляра созданного вами ноутбука? Это R 3.6? Кроме того, было бы полезно иметь расширенную версию вашего кода, которая включала бы инструкции импорта и любую другую дополнительную информацию, касающуюся генерируемого исключения.
Ответ №1:
browseURL()
это функция R, пытающаяся открыть веб-браузер, чтобы отобразить содержимое по URL-адресу. Ноутбук GCP AI работает в облаке, и в системе, в которой он работает, вероятно, не установлен веб-браузер.
Вам нужно будет найти способ вызвать функцию R stan_glm()
таким образом, чтобы для нее не требовался веб-браузер.
Комментарии:
1. @Igautier У вас есть какие-либо идеи, как это сделать?
Ответ №2:
Добавив эту строку в env.sh файл Мне удалось обойти ошибку browseURL.
export R_BROWSER="false"