在OpenCPU/包上找到自定义R包,但没有可见的函数

在OpenCPU/包上找到自定义R包,但没有可见的函数,r,package,cloud,opencpu,R,Package,Cloud,Opencpu,CI已经为OpenCPU编写了一个R包,并希望在我自己的云服务器上使用它。我无法访问任何函数,即使包本身已被识别并可以更新,我也可以通过POST和GET正常访问其他(非自定义,例如base或stats)包 我已经安装了自定义软件包以及/usr/local/lib/R/site library的所有依赖项,并且我可以在服务器本地的R会话中使用这些功能 > TestConnectivity function (x = 100) { return(sum(rnorm(x))) } &l

CI已经为OpenCPU编写了一个R包,并希望在我自己的云服务器上使用它。我无法访问任何函数,即使包本身已被识别并可以更新,我也可以通过POST和GET正常访问其他(非自定义,例如base或stats)包

我已经安装了自定义软件包以及
/usr/local/lib/R/site library
的所有依赖项,并且我可以在服务器本地的R会话中使用这些功能

> TestConnectivity
function (x = 100) 
{
    return(sum(rnorm(x)))
}
<environment: namespace:MyPkg>
> TestConnectivity()
[1] 4.174071
但当我在
/ocpu/library/MyPkg/R/TestConnectivity
通过OpenCPU(通过浏览器或curl)访问它时,我得到:

object 'TestConnectivity' not found

In call:
get(reqobject, paste("package", reqpackage, sep = ":"), inherits = FALSE)
/ocpu/library/MyPkg/R/
也为空(通常,需要导出函数的列表),但通过
/ocpu/library/MyPkg/
的浏览器可以看到包本身:

    Information on package 'MyPkg'

Description:

Package:       MyPkg
Description:   in development ...
Type:          Package
Version:       0.1.2
[...]

Index:

TestConnectivity        Test Connectivity of OpenCPU
MyPkg                   Provide R analysis of stored data.
MyPkg-package           Calculation package
我已将其名称添加到
/etc/opencpu/server.conf
中的preload字段中,但
/ocpu/info
仅将其显示为通过命名空间加载的
(未附加):[n]MyPkg_0.1.2
。我不知道,这是不是个问题

我还添加了对包功能所需的所有文件的访问权限,例如ODBC数据库连接的DSN配置文件

包本身不仅包含函数,还包含组合的
R6
S3
类定义(单个文件中的继承)――但是,在
TestConnectivity()
中没有使用这些定义。函数也不总是放在与函数名称完全相同的文件中,有时几个函数组合在一个文件中。(
TestConnectivity()
放在相应的
TestConnectivity.R
文件中-如果有必要的话。)

与在本地使用包相比,使用OpenCPU时是否存在一些文件结构方面的限制,这可能会导致此问题?或者类定义文件可能是问题的原因?非常感谢您的建议。

谢谢您的回答(顺便说一句,OpenCPU上的伟大工作…)

我只需将包安装在
/home/myUser/R/3.1/library
,例如
.libpath()[1]
(或
R-LIBS-USER[1]
)而不是
/usr/local/lib/R/site library
,就解决了我的问题

我通过逐步建立一个越来越复杂的测试包达到了目的。。。在我几乎拥有实际项目结构的时候,它仍然有效。唯一不同的是安装路径

总而言之,这可能是我的虚拟机上的权限管理问题,而不是OpenCPU或我的软件包的问题。很抱歉,我不能提供更多的信息-如果我偶然发现了什么,我将在这里添加它


编辑-我忘了:当然,url从
/ocpu/library/MyPkg/R/
变为
/ocpu/user/MyUsername/library/MyPkg/R/

你似乎做得不错。OpenCPU中的R包没有额外的限制。你的代码在什么地方公开吗?还是显示问题的简单版本的软件包?如果您提供一个我们可以测试的示例,将更容易帮助您。
    Information on package 'MyPkg'

Description:

Package:       MyPkg
Description:   in development ...
Type:          Package
Version:       0.1.2
[...]

Index:

TestConnectivity        Test Connectivity of OpenCPU
MyPkg                   Provide R analysis of stored data.
MyPkg-package           Calculation package