在Markdown中运行Python代码

2024-04-30 03:36:50 发布

您现在位置:Python中文网/ 问答频道 /正文

在降价文档中有很多关于使用Python代码的信息。但这一切似乎都是为了演示Python代码片段,而不是创建好看的文档。

我不能把Python和Markdown组合在一个文档中吗,就像R和Markdown一样?

MWE公司:

Output some text from Python in **Markdown**:
```python
from sklearn.datasets import load_iris
from sklearn import tree
iris = load_iris()
clf = tree.DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)
print(clf.predict_proba(iris.data[:1, :]))
```

编译这个:markdown_py markdown.txt

<p>Output some text from Python in <strong>Markdown</strong>:
<code>python
from sklearn.datasets import load_iris
from sklearn import tree
iris = load_iris()
clf = tree.DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)
clf.predict_proba(iris.data[:1, :])</code></p>

它显示代码(很酷),但实际上并不运行它。

不能在Markdown中运行Python代码吗?如果没有,还有其他选择吗?

(使用Ubuntu的python markdown包。)


Tags: 代码textfrom文档importtreeirisoutput
2条回答

我刚找到一个解决办法:

将块用作:

<<engine='python', engine.path='python3'>>=
# python code
@
  • 默认情况下,engine.path使用python可执行文件,在大多数Linux系统中,它仍然是python2。如果您想要Python 2,可以使用commit。
  • 如果要输出命令代码,请不要忘记传递echo=FALSE,并且results='asis',这样它就不会试图转义输出。

您可以在文档的开头使用以下块设置默认值:

<<r setup, include=FALSE>>=
knitr::opts_chunk$set(echo=FALSE, engine='whathaveyou', ...)
@

将文件另存为markdown.Rmd,并使用R和knitr编译它。它将使用Python运行Python代码。

R命令:rmarkdown::render('markdown.Rmd','output.html')

或者只使用RStudio

附录:本机解决方案显然是Pweave:它与乳胶和标记一起工作。不过,我还没有试过。

从2018年起,CRAN-package ^{}将提供更好的解决方案。

与“Python”模块、类和函数的接口。当调用“Python”时,R数据类型会自动转换为其等效的“Python”类型。当值从“Python”返回到R时,它们将被转换回R类型。兼容所有版本的“Python”>;=2.7。

相关问题 更多 >