Корневой каталог для фрагмента Python в Knitr?

Надеюсь, это не так просто, как кажется. У меня есть базовый каталог:

root --> Paper
     --> Code

для статьи, которую я пишу. Я хочу вызвать скрипт Python в каталоге Code из моего документа Knitr в каталоге Paper (что-то вроде этого, но с Python вместо R). Так что это будет что-то вроде этого:

Python-скрипт testit.py

## @knitr testit
import os
print os.getcwd()

Сохраненный в каталоге кода документ, связанный с вязанием, test.Rnw:

\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 ?). Любые мысли о том, как справиться с этим? Мой гугл-фу подвел меня здесь...


person Winawer    schedule 19.03.2013    source источник
comment
Это ошибка; Я исправлю это через минуту. Спасибо!   -  person Yihui Xie    schedule 20.03.2013


Ответы (1)


Извините, я не уделил должного внимания проблеме пути для двигателей, отличных от R. Теперь эта проблема исправлена ​​в разрабатываемой версии на Github.

person Yihui Xie    schedule 20.03.2013
comment
Спасибо! Я попробую. Ты восхитителен. :) - person Winawer; 20.03.2013