Я недавно начал использовать Sweave* для создания сообщений об исследованиях, выполненных с R, и теперь надеюсь делать то же с моими сценариями Python.
Я нашел ссылки на встраивание Python в документах Sweave, но это походит на определенный взлом. Кто-либо разработал лучшее решение или является там эквивалентом для Python, о котором я не знаю?
* Sweave является инструментом, который позволяет встраивать код R для полных анализов данных в латексных документах
Я не верю, что есть прямой эквивалент, так что предложение Ромена Франсуа (в вашей ссылке), вероятно, лучшее. Вы также можете рассмотреть следующее:
Вы можете попробовать SageTex , который реализует скровную функциональность для математической платформы . Я не играл с ним так сильно, как я бы хотел, но мудрец в основном является питоной оболочкой и оценивает Python, как это родной язык.
Я тоже много раз думал об одном и том же. Прочитав ваши вопросы и изучив вашу ссылку, я внес небольшие изменения в настраиваемый драйвер python Sweave, на который вы ссылаетесь. Я изменил его, чтобы сохранить исходный код и произвести вывод так же, как Sweave для R.
Я разместил измененную версию и пример здесь: http://mpastell.com/2010/ 02/09 / python-in-sweave-document /
Конечно, это не оптимально, но я вполне доволен результатом, и мне нравится возможность включать как R, так и Python в один документ.
Изменить информацию о PyLit :
Мне также нравится PyLit, и, вопреки моему первоначальному ответу, вы также можете уловить выход с его помощью, хотя он не такой элегантный, как Sweave! Вот небольшой пример того, как это сделать:
import sys
# Catch PyLit output
a = range(3)
sys.stdout = open('output.txt', 'w')
print a
sys.stdout = sys.__stdout__
# .. include:: output.txt
Я написал реализацию Sweave на Python под названием Pweave, которая реализует базовую функциональность и некоторые опции Sweave для кода Python, внедренного в документ reST или Latex. Вы можете получить его здесь: http://mpastell.com/pweave и посмотреть оригинальную запись в блоге здесь: http://mpastell.com/2010/03/03/pweave-sweave-for-python/
Вы могли бы подумать о noweb, который не зависит от языка и является основой Sweave. Я использовал его для Python, и он хорошо работает.