r-如何修复加载gdata包时的Perl警告消息



我已经更新了Strawberry Perl 64-bit 5.30.2001gdata包。现在,当加载library(gdata)时,我总是收到这样的警告消息,这些消息似乎与Perl有关。

suppressPackageStartupMessages(library(gdata))
# Warning messages:
#   1: In system(cmd, intern = intern, wait = wait | intern, show.output.on.console = wait,  :
#     running command 'C:Windowssystem32cmd.exe /c ftype perl' had status 2
#   2: In system(cmd, intern = intern, wait = wait | intern, show.output.on.console = wait,  :
#     running command 'C:Windowssystem32cmd.exe /c ftype perl' had status 2

然而,我需要的read.xls功能似乎运行得很好,只是每次使用它时都会重复警告

read.xls("http://file-examples-com.github.io/uploads/2017/02/file_example_XLS_10.xls")
# trying URL 'http://file-examples-com.github.io/uploads/2017/02/file_example_XLS_10.xls'
# Content type 'application/vnd.ms-excel' length 8704 bytes
# downloaded 8704 bytes
#   X0 First.Name Last.Name Gender       Country Age       Date   Id
# 1  1      Dulce     Abril Female United States  32 15/10/2017 1562
# 2  2       Mara Hashimoto Female Great Britain  25 16/08/2016 1582
# 3  3     Philip      Gent   Male        France  36 21/05/2015 2587
# 4  4   Kathleen    Hanner Female United States  25 15/10/2017 3549
# 5  5    Nereida   Magwood Female United States  58 16/08/2016 2468
# 6  6     Gaston     Brumm   Male United States  24 21/05/2015 2554
# 7  7       Etta      Hurn Female Great Britain  56 15/10/2017 3598
# 8  8    Earlean    Melgar Female United States  27 16/08/2016 2456
# 9  9   Vincenza   Weiland Female United States  40 21/05/2015 6548
# Warning messages:
#   1: In system(cmd, intern = intern, wait = wait | intern, show.output.on.console = wait,  :
#     running command 'C:Windowssystem32cmd.exe /c ftype perl' had status 2
#   2: In system(cmd, intern = intern, wait = wait | intern, show.output.on.console = wait,  :
#     running command 'C:Windowssystem32cmd.exe /c ftype perl' had status 2

我不知道如何处理这个警告,因为它对我来说什么都没说,我可能会忽略它,并在它周围包上suppressWarnings()

然而,有人知道解决这个问题的方法吗?我在谷歌上找不到任何东西,不知道从哪里开始,也不知道到底出了什么问题。

> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
other attached packages:
[1] gdata_2.18.0
loaded via a namespace (and not attached):
[1] compiler_4.0.2 tools_4.0.2    gtools_3.8.2  

我在新安装的R、gdata和Strawberry Perl版本中也遇到了同样的问题。我终于找到了一个不同(但相关(问题的答案。根据那里的建议,我在提升的命令提示符上运行了以下内容:

FTYPE perl=C:Strawberryperlbinperl.exe %1 %*

这解决了我的问题——然而:我不确定这样设置FTYPE是否会有任何不必要的副作用。所以要小心。


更新:上面的命令确实抑制了警告";ftype-perl’具有状态2";对我来说,但gdata仍然存在问题:

gdata:无法加载read.xls((所需的perl库gdata:支持"XLSX"(Excel 2007+(文件。

gdata:运行函数"installXLSXsupport(("gdata:自动下载并安装perlgdata:支持ExcelXLS和XLSX格式所需的库。

但是,installXLSXsupport()失败,并显示一条不特定的错误消息。

然后我运行

Sys.which("perl")
perl 
"C:\rtools40\usr\bin\perl.exe" 

并意识到来自RTools的Perl版本优先于我的Strawberry Perl安装——显然CCD_;像";Perl版本。

因此,我决定通过更改.Renviron文件(usethis::edit_r_environ()(:,使Strawberry Perl优先于RTools

PATH="${RTOOLS40_HOME}usrbin;${PATH}" # old
PATH="${PATH};${RTOOLS40_HOME}usrbin" # new

同样,我不完全确定这个可能会产生什么后果,但它为我修复了gdata。也许单独调整PATH也能达到目的(如果没有我先做的ftype特技(,但我不能再测试了。

我推荐:

  1. 首先调整PATH
  2. 如果gdata仍然抱怨ftype,则设置ftype

最新更新