【问题标题】:Problem with calling an R package in Python在 Python 中调用 R 包的问题
【发布时间】:2019-11-25 16:33:36
【问题描述】:

对于上下文:我的目标是创建一个图形界面,以便用户可以运行我在 R 中开发的程序。该界面是使用 python(版本 3.3)中的 Tkinter 模块完成的。现在我正试图让它在 Windows 中工作。

我相信我已经成功地使用 python 调用了 R 解释器来运行我的 R 文件 (run.R)。在这个文件中,我将 R 包称为“seqinr”。但是,当我从 python 调用 R 解释器时,我得到了这个:

我运行这个:

os.system('C:/"Program Files"/R/R-3.6.1/bin/Rscript run.R')

我得到了这个:

Error in library(seqinr) : there is no package called 'seqinr'
Calls: source -> withVisible -> eval -> eval -> library
Execution halted

但是,当我在命令提示符中运行 'C:/"Program Files"/R/R-3.6.1/bin/Rscript run.R' 命令时,它运行良好,我没有任何问题。 我还检查了我的包的安装位置,它位于 R 用来安装所有包的默认目录中。我的机器上也没有安装任何其他 R 版本。

我不知道现在发生了什么,所以我将不胜感激。

谢谢!

【问题讨论】:

标签: python r operating-system


【解决方案1】:

虽然可能不令人满意,但我建议您更改“run.R”文件以包含以下行:

if (!("seqinr" %in% installed.packages())) {
    install.packages('seqinr', repos = "https://cloud.r-project.org")
}
library(seqinr)

如果在从 Python 调用时 R 正在寻找包的任何地方都无法使用该包,这将安装该包。此外,您可以在“run.R”文件中包含print(rownames(installed.packages())),以查看在运行时从 Python 调用时哪些包当前可用于您的 R 安装。包含 print(.libPaths()) 行会告诉您 R 在运行时在哪里寻找已安装的软件包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2023-03-17
    • 2020-03-22
    • 1970-01-01
    相关资源
    最近更新 更多