导入mgcv失败,因为找不到Rlapack.dll

导入mgcv失败,因为找不到Rlapack.dll,r,ironpython,R,Ironpython,我想通过使用该库链接到IronPython中的R统计包。它一直运行良好,但现在我需要使用R的库 导入mgcv失败(导入是通过命令rdn.r.org(“库(mgcv)”)完成的,其中rdn是包装r.NET库的IronPython对象)。导入失败时,Windows将打开一个对话框,该对话框说:“程序无法启动,因为您的计算机中缺少Rlapack.dll。请尝试重新安装程序以修复此问题。” 当然,如果Rlapack.dll丢失,R一开始就不会工作,那么发生了什么 我检查了mgcv包的依赖性;它们包括基本

我想通过使用该库链接到IronPython中的R统计包。它一直运行良好,但现在我需要使用R的库

导入
mgcv
失败(导入是通过命令
rdn.r.org(“库(mgcv)”)
完成的,其中
rdn
是包装r.NET库的IronPython对象)。导入失败时,Windows将打开一个对话框,该对话框说:“程序无法启动,因为您的计算机中缺少Rlapack.dll。请尝试重新安装程序以修复此问题。”


当然,如果Rlapack.dll丢失,R一开始就不会工作,那么发生了什么

我检查了
mgcv
包的依赖性;它们包括基本包
矩阵
。事实证明,
Matrix
已经被R开发团队编译成了一个dll(在${R_HOME}/library/Matrix/libs/i386/Matrix.dll中找到)。该dll需要链接到Rlapack.dll,由于某种原因,在IronPython中从R.NET调用R时,它找不到Rlapack.dll


解决方案是将Rlapack.dll的副本(可以在${R_HOME}/bin/i386/中找到)放入与Matrix.dll相同的目录中。现在每天都是星期天。

我对
compositions.dll有同样的问题

因此,我没有将
Rlapack.dll
复制到存在
compositions.dll
的目录中,而是将
bin
目录添加到
路径中

string rhome = System.Environment.GetEnvironmentVariable("R_HOME");
if (string.IsNullOrEmpty(rhome))
    rhome = @"C:\Program Files\R\R-2.14.0";

System.Environment.SetEnvironmentVariable("R_HOME", rhome);
System.Environment.SetEnvironmentVariable("PATH", System.Environment.GetEnvironmentVariable("PATH") + ";" + rhome + @"\bin\i386");

不要担心回答这个问题;我已经解决了这个问题,并将在8小时后发布解决方案,当SO的锁定过期时。我不知道IronPython在哪里查找Rlapack.dll,但R正在其自己的主目录中查找它(…/R-2.x.x/bin/i386或/R-2.x.x/bin/x64(对于64位版本)。这不是R可执行文件的目录,也不是库的目录。将这个添加到您的路径可能会有所帮助。这很奇怪。在Windows XP中,将R bin添加到
路径中对我来说不起作用。但它在Windows7中工作!