我正在一个有几个文件夹的R
项目中。工作目录是主脚本和名为src
的文件夹所在的位置。该文件夹包含两个python
脚本,一个叫做test_function.py
,另一个叫做test_script.py
。
我在主脚本中使用了reticulate
包,并且尝试使用函数source_python( )
来调用python
脚本。代码如下:
# Main R script
library(reticulate)
source_python("test_function.py")
但是,出现以下错误
py_run_file_impl(文件,本地,转换)中的错误: 无法打开文件“ test_func.py”(是否存在?)
现在,工作目录如下所示:
setwd("C:/Users/.../testProject")
函数source_python( )
仅在我移至python脚本所在的位置时起作用
setwd("C:/Users/.../testProject/src")
但是,我需要从主R
脚本所在的目录中使它起作用,因为R
项目将非常复杂,并且需要多个源(其中一些源代码为{ {1}})
有什么建议吗?谢谢!
答案 0 :(得分:0)
您可以使用scriptName
软件包。示例:
脚本文件“〜/ Desktop / temp.r”:
library(scriptName)
library(reticulate)
x <- scriptName::current_filename()
print(dirname(x))
source_python(paste0(dirname(x), "/src/test_function.py"))
source("~/Desktop/temp.r")
输出:
[1] "script path is: "
[1] "/Users/thc/Desktop"