【问题标题】:Root directory for python chunk in knitr?knitr中python块的根目录?
【发布时间】:2013-03-19 23:35:25
【问题描述】:

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

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 knitr


【解决方案1】:

对不起,我没有对R 以外的引擎的路径问题给予足够的重视。现在这个问题已经在 Github 上的development version 中修复了。

【讨论】:

  • 谢谢!我会试试看。你真棒。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2016-12-29
  • 2020-10-14
  • 2013-08-03
  • 2016-05-18
  • 2012-02-20
相关资源
最近更新 更多