加载httpuv/later包时出现「Can't create event loop 0 because it already exists」错误,无法使用AzureAuth完成认证
加载httpuv/later包时出现「Can't create event loop 0 because it already exists」错误,无法使用AzureAuth完成认证
遇到这个问题我太懂了!之前用httpuv做Azure认证的时候也踩过这个坑,给你几个实用的解决办法,按顺序试大概率能搞定:
先清理当前会话的残留进程:在控制台输入以下命令,清空环境并尝试卸载已加载的相关包(没加载的话报错也没关系):
rm(list = ls(all.names = TRUE)) gc() try(detach("package:httpuv", unload = TRUE), silent = TRUE) try(detach("package:later", unload = TRUE), silent = TRUE)完成后再重新加载
library(later)和library(httpuv),看是否能正常运行。直接重启R会话:这是最省心的办法!有时候残留的事件循环进程在当前会话里清不干净,重启RStudio或者R终端后,再重新加载两个包,大概率能解决问题。
重装最新版本的包:如果重启后还是报错,可能是版本兼容性问题。先卸载旧版本,再安装最新版:
# 卸载旧包 remove.packages(c("later", "httpuv")) # 安装CRAN稳定版 install.packages(c("later", "httpuv"), dependencies = TRUE) # 要是稳定版还是有问题,试试GitHub开发版(先确保devtools已安装) # install.packages("devtools") devtools::install_github("rstudio/later") devtools::install_github("rstudio/httpuv")排查冲突包:有没有同时加载shiny、plumber这类依赖事件循环的包?它们也会创建事件循环,可能和later/httpuv冲突。试着在干净的会话里只加载later和httpuv,再运行AzureAuth的认证代码,看是否正常。
Windows用户试试管理员权限:偶尔会因为系统权限问题导致无法创建事件循环,右键点击RStudio选择「以管理员身份运行」,再加载包试试。
等包能正常加载后,就可以继续用AzureAuth完成认证啦,比如运行AzureAuth::get_azure_token(...)这类命令应该就没问题了。
备注:内容来源于stack exchange,提问作者SaiFB12
相关产品推荐
相关产品推荐

