我已经编写了一个OpenCPU应用程序包,并在单服务器模式下成功测试了它。服务器已设置,它可以毫无问题地找到该应用程序。
但它在某些 ocpu 调用中出错,如下所示(从 Chrome JS 控制台):
POST http://mydomain/ocpu/library/userengagementdashboard/R/metricsList 400 (Bad Request) jquery-1.10.2.min.js:6
OpenCPU error HTTP 400
package or namespace load failed for 'userengagementdashboard'
In call:
NULL
在单用户服务器模式下未收到这些错误。
如果我检查 http://mydomain
/ocpu/library/userengagementdashboard/NAMESPACE,我会得到:
export(aggregatePlot)
export(clusterFun)
export(facetPlot)
export(facetsList)
export(getDataAll)
export(getDataFacet)
export(getDataTime)
export(getDataTimeFacet)
export(mergeClusters)
export(metricsList)
export(timeFacetPlot)
export(timePlot)
import(RDruid)
import(ggplot2)
import(lubridate)
import(parallel)
import(plyr)
import(reshape)
我的进口有问题吗?
更新:
由于 Jeroen 的建议,我可能没有所有的依赖项,因此解决了这个问题。
首先,我查看了 http://mydomain
/ocpu/library/下的依赖项,并将任何缺少的软件包安装到正确的库位置。
然后这些依赖包的一些导入和依赖项尚未安装,所以我也安装了它们的依赖项。 问题解决了!
您的包可能无法加载,因为未安装某些依赖项。如果NAMESPACE
文件导入依赖项(未在DESCRIPTION
文件中声明),则通常会出现此问题。因此,如果您的NAMESPACE
包含:
import(RDruid)
import(ggplot2)
import(lubridate)
import(parallel)
import(plyr)
import(reshape)
比您的DESCRIPTION
需要包含一行:
Imports: Druid, ggplot2, lubridate, parallel, plyr, reshape
R 包管理器在安装包时查看安装依赖项DESCRIPTION
。