knitr中python block 的根目录?

标签 r knitr

我希望这不像感觉那么简单。我有一个基本的目录设置:

root --> Paper
     --> Code

对于我正在写的论文。我想从 Paper 目录中的 knitr 文档中调用 Code 目录中的 Python 脚本(类似于 this ,但使用 Python 而不是 R)。所以它会是这样的:

Python 脚本 testit.py
## @knitr testit
import os
print os.getcwd()

knitr文件test.Rnw保存在Code目录下:
\documentclass{article}
\begin{document}

<<setup,echo=FALSE>>=
read_chunk("testit.py")
@

<<testit,engine='python'>>=
@

\end{document}

当我编译为 PDF 时,答案是正确的:
## /Users/blah/foo/bar/Code

但是文件test-2.Rnw保存在Paper目录下:
\documentclass{article}
\begin{document}

<<setup,echo=FALSE>>=
opts_knit$set(root.dir="../Code/")
read_chunk("../Code/testit.py")
@

<<testit,engine='python'>>=
@

\end{document}

输出:
## /Users/blah/foo/bar/Paper

root.dir 在这里没有明显的效果,就像对 R 块一样,我不知道还有什么可以尝试更改 Python 块的目录。这是一个问题,因为我想让python脚本对Code目录下的文件进行操作,但是当然找不到。我可以在 python 脚本中对目录更改进行硬编码,但这似乎很脆弱。我什至很高兴将根目录作为脚本的参数直接传递给 python 解释器,这可能吗(但我不这么认为,因为 knitr 使用 python -c ?)。关于如何处理这个的任何想法?我的 google-fu 在这里失败了...

最佳答案

抱歉,我没有足够关注 R 以外的引擎的路径问题。 .现在这个问题已经在 development version 中得到修复在 Github 上。

关于knitr中python block 的根目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15512545/

相关文章:

r - 调试 R 中加载的 Rcpp 编译代码(在 OS X Mavericks 上)有哪些有效方法?

r - Knitr 中的标题

r - R-markdown 中 knit 期间 eval(expr envir enclos) 出错

R:检查列值是否减少/增加

r - R Markdown/knitr 报告中的蜡笔

r - 使用 YAML 设置参数 IN YAML header Knit 和参数

r - 针织选项 : exact number of digits including trailing zeroes

r - 将文字描述放在 kable 旁边

删除由 ggarrange 排列的透明 ggplot 图之间的网格

r - 是否可以获得主动绑定(bind)背后的功能?