r - 如何指定 python 块中的根目录?



使用以下代码行在python块中设置根目录会导致错误,而对于普通的r块,它工作正常

knitr::opts_knit$set(root.dir ="..")
knitr::opts_knit$set(root.dir ="..")

理想情况下,每个 knitr-chunk 应该存在以下选项: - 查找要导入/执行的代码的目录 - 目录以查找代码执行所需的文件/依赖项 - 保存任何代码输出的目录

存在类似的东西吗?

这里看起来是你告诉它要寻找python代码:

```{python}
knitr::opts_knit$set(root.dir ="..")
```

当你在 R studio 中运行它时,它会给你一个错误:

错误:语法无效(,第 1 行)

你给它喂了python代码。 这是有道理的,因为调用 knit::opt_knit$set 意味着在 knitr 包中查找 opts_knit$set 并将其设置为....这在python中不存在...还。 python编译器无法将其识别为python代码并返回语法错误。 而当你把它作为一个R块运行时,它知道查看knitr包。 错误处理可能是一个巨大的问题。处理错误类别比考虑每种类型的错误更有意义。 如果要控制代码块的设置,可以在括号中执行此操作,即:

```{python, args }
codeHere
```

除了R之外,我没有看到任何其他语言的args,但这并不意味着它不存在。 我只是没有见过他们。 我也不相信这会解决您的问题。您可以尝试以下一些想法:

  • 将你的python写在一个单独的文件中并链接到它。 这将允许您利用该语言并利用操作系统导入等功能。 这可能是您要考虑的事情,因为即使是python也有其浏览各种操作系统的方式。 如果您只是运行快速脚本而不加载或运行 python 程序,这可能会有所帮助。

    # OS module
    import os
    # Your os name 
    print(os.name)
    # Gets PWD or present working directory
    os.getcwd()
    # change your directory
    os.chdir("path")
    
  • 您可以尝试在 R 块中使用网状库并以这种方式加载您的 python

  • 另一个想法是你可以试试

    库(网状) use_python("路径")

  • 如果需要,Knitr 会查找与您的 markdown 文件相同的目录,以查找其他文件。 这就像任何其他 IDE 一样

  • 在某个时间点,knitr 不会接受 R 的 setwd() 命令。尝试调用 setwd() 可能对您没有任何好处。
  • 计算相对于正在执行的内容的路径可能不是最佳主意。如果可能,应相对于用户调用代码的位置来确定它们。

这个网站可能会有所帮助。

针织包的作者非常活跃和参与。祝你正在做的事情好运!

相关内容

  • 没有找到相关文章

最新更新