Функция browseURL не работает в GCP AI notebook

#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"