2

我的最后 两个问题很尴尬,但我相信这个问题是真的。我的系统是新安装的,所以除了操作系统之外的版本都是最新的:Windows 7 SP1、R-3.0.1、Lyx 2.0.6、knitr 1.2、gdata 2.12.0.2。

首先,让我注意 gdata 在 RGui 中可以正常工作。现在,这是我要编译的文档:

这是输出。

gdata 包也成功加载到从命令行调用的 Rscript 中。我使用 LyX 导出了一个 .Rnw 文件,该文件从 RGui 和从命令行传递给 Rscript 的脚本成功编织。

当我第一次开始使用计算机时,我遇到了类似的(或者可能相同,我不能发誓错误消息的身份)的困难。那个时候是由于 Windows 7 用户帐户控制,当我弄清楚如何以管理员身份自动运行 R 时解决了(没有点击 - 甜蜜)。所以我尝试删除只读属性和所有可能涉及的所有安全限制——R 文件夹、LyX 文件夹、我的包文件夹、MikTeX。没运气。

接下来是什么?


ETA:据我所知,没有从 LyX 调用的 R 脚本可以加载 gdata 包。我更改了文件转换器以将 stdout 和 stderr 写入文件,这产生了与上面屏幕截图中看到的相同的错误消息,但在此之前:

无法在 @INC 中找到 Data/Dumper.pm(@INC 包含:C:/Users/cyanofsky/Documents/R/win-library/3.0/gdata/perl C:/Program Files (x86)/MiKTeX 2.9/miktex /lib .) 在 C:/Users/cyanofsky/Documents/R/win-library/3.0/gdata/perl/module_tools.pl 第 11 行。

BEGIN 失败——编译在 C:/Users/cyanofsky/Documents/R/win-library/3.0/gdata/perl/module_tools.pl 第 11 行中止。

在 C:/Users/cyanofsky/Documents/R/win-library/3.0/gdata/perl/supportedFormats.pl 第 9 行的要求中编译失败。

运行 'C:\Program Files\R\R-3.0.1\bin\x64\Rterm.exe --slave --no-restore --no-save --no-restore --file=C:/Program Files (x86)/LyX 2.0/Resources/scripts/lyxknitr.R --args C:/Users/cyanofsky/AppData/Local/Temp/lyx_tmpdir.Hp8008/lyx_tmpbuf3/xxxxxxxxx.Rnw C:/Users/cyanofsky/AppData/Local/ Temp/lyx_tmpdir.Hp8008/lyx_tmpbuf3/xxxxxxxx.tex ISO-8859-15'


ETA:对 Data/Dumper 的搜索得出了以下结果:

http://help.directadmin.com/item.php?id=189

我验证了我安装的 Perl64 有 Data 模块;它在 C:\Perl64\lib 中。因此,这是某个地方的某些路径变量配置错误的情况。这不是 LyX 的路径前缀变量;不,不,那太容易了。


Per Yihui的回答:

从 GUI(在本例中为 RStudio)中:

> strsplit(Sys.getenv('PATH'), ';')
[[1]]
 [1] "C:\\Program Files\\R\\R-3.0.1\\bin\\x64"                        
 [2] "C:\\Program Files\\R\\R-3.0.1\\bin\\x64"                        
 [3] "C:\\Perl64\\site\\bin"                                          
 [4] "C:\\Perl64\\bin"                                                
 [5] "c:\\Rtools\\bin"                                                
 [6] "c:\\Rtools\\gcc-4.6.3\\bin"                                     
 [7] "c:\\Program Files (x86)\\AMD APP\\bin\\x86_64"                  
 [8] "c:\\Program Files (x86)\\AMD APP\\bin\\x86"                     
 [9] "c:\\Program Files (x86)\\Intel\\iCLS Client\\"                  
[10] "c:\\Program Files\\Intel\\iCLS Client\\"                        
[11] "C:\\Windows\\system32"                                          
[12] "C:\\Windows"                                                    
[13] "C:\\Windows\\System32\\Wbem"                                    
[14] "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\"               
[15] "c:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static"
[16] ""                                                               
[17] "C:\\Program Files\\Intel\\WiFi\\bin\\"                          
[18] "C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\"       
[19] "C:\\Program Files (x86)\\Intel\\OpenCL SDK\\3.0\\bin\\x86"      
[20] "C:\\Program Files (x86)\\Intel\\OpenCL SDK\\3.0\\bin\\x64"      
[21] "C:\\Program Files (x86)\\MiKTeX 2.9\\miktex\\bin\\"             

> Sys.which('perl')
                       perl 
"C:\\Perl64\\bin\\perl.exe" 

以下是对 Rscript 的调用:

> load("~/lyxknitrpaths.RData")
> syspath
[[1]]
 [1] "C:\\Program Files\\R\\R-3.0.1\\bin\\x644"                       
 [2] "LyXDir\\bin"                                                    
 [3] "$LyXDir\\Python"                                                
 [4] "$LyXDir\\Python\\Lib"                                           
 [5] "$LyXDir\\imagemagick"                                           
 [6] "C:\\Program Files (x86)\\MiKTeX 2.9\\miktex\\bin"               
 [7] "C:\\Program Files (x86)\\LyX 2.0\\ghostscript\\bin"             
 [8] "C:\\Perl64\\lib"                                                
 [9] "C:\\Perl64"                                                     
[10] "C:\\Program Files (x86)\\LyX 2.0\\\\Python"                     
[11] "C:\\Program Files (x86)\\LyX 2.0\\\\Python\\Lib"                
[12] "C:\\Program Files (x86)\\LyX 2.0\\\\imagemagick"                
[13] "C:\\Program Files (x86)\\LyX 2.0\\\\bin"                        
[14] "C:\\Program Files (x86)\\LyX 2.0\\bin\\"                        
[15] "C:\\Program Files\\R\\R-3.0.1\\bin\\x64"                        
[16] "C:\\Perl64\\site\\bin"                                          
[17] "C:\\Perl64\\bin"                                                
[18] "c:\\Rtools\\bin"                                                
[19] "c:\\Rtools\\gcc-4.6.3\\bin"                                     
[20] "c:\\Program Files (x86)\\AMD APP\\bin\\x86_64"                  
[21] "c:\\Program Files (x86)\\AMD APP\\bin\\x86"                     
[22] "c:\\Program Files (x86)\\Intel\\iCLS Client\\"                  
[23] "c:\\Program Files\\Intel\\iCLS Client\\"                        
[24] "C:\\Windows\\System32"                                          
[25] "C:\\Windows"                                                    
[26] "C:\\Windows\\System32\\wbem"                                    
[27] "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\"               
[28] "c:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static"
[29] "C:\\Program Files\\Intel\\WiFi\\bin\\"                          
[30] "C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\"       
[31] "C:\\Program Files (x86)\\Intel\\OpenCL SDK\\3.0\\bin\\x86"      
[32] "C:\\Program Files (x86)\\Intel\\OpenCL SDK\\3.0\\bin\\x64"      
[33] "C:\\Program Files (x86)\\MiKTeX 2.9\\miktex\\bin\\"             

> perlpath
                                             perl 
"C:\\PROGRA~2\\MIKTEX~1.9\\miktex\\bin\\perl.exe" 
4

1 回答 1

3

听起来 Perl 的两个实例在你的PATH. 请在下面发布代码的输出

strsplit(Sys.getenv('PATH'), ';')
Sys.which('perl')

来自 LyX/knitr 和 plain R。(请随意替换任何与隐私有关的内容,例如您的用户名foobar

于 2013-06-17T17:20:31.380 回答