当前位置: 首页 > 面试题库 >

knitr-Python引擎缓存选项不起作用

孙弘博
2023-03-14
问题内容

yihui给出了针对不同引擎使用cache选项的示例

https://github.com/yihui/knitr-examples/blob/master/023-engine-
python.Rmd

我似乎无法使其适用于python。

以下作品

```{r,engine='python',cache=TRUE}
x=10
print x
```

但这行不通

```{r,engine='python',cache=TRUE}
x = 10
```

```{r,engine='python',cache=TRUE}
print x
```

有人有主意吗?


问题答案:

块选项cache不会保存块中定义的除之外的所有语言变量R。但是,这是保存打印输出的结果,因此,如果您计算需要花费一些时间的内容,则无需重新计算任何结果。从knitr网站:

engine='R'(默认)外,所有块均在单独的会话中执行,因此不能直接共享变量。如果要使用在先前的块中创建的对象,通常必须将它们写入文件(作为副作用)。对于bash引擎,我们可以
Sys.setenv()用来将变量从R导出到bash(示例)。

可以在外壳程序的环境中保存一些值,然后通过读取环境从其他单元格检索这些值。这是Yihui在Polyglot示例中采用的方法。因此,对于Python,如果您可以将值格式化为字符串并将其传递给sys.setenv(),则可以通过调用在另一个单元格(作为单独的Python会话运行)中使用该值sys.getenv()

虽然,我对CFortran引擎采用的方法感到有些困惑。这些似乎通过有机会获得在以后的块编译函数使用名为某种功能.C()调用的函数.Fortran()。但是,似乎Python没有等效功能。



 类似资料:
  • 加拿大城市列表中卡尔加里的选择不起作用,按专业语法单击搜索按钮后,它将始终返回搜索结果中的所有城市。这是我的密码: 提前谢谢!

  • 问题内容: 我已经设置了’cache:true’选项,但是该缓存似乎仅在IE中有效,而在Firefox和Chrome中不起作用。这是一个已知问题吗? 问题答案: 该选项不是jQuery维护的特殊缓存,因此可能有点用词不当。 将时间戳附加到所请求的URL,因此 强制 浏览器获取新副本,这更像是一个缓存破坏者。 不执行任何操作 ,将保留本机浏览器缓存以执行此处将要执行的任何操作。 这根本不是jQuer

  • 给出了一个带有express的nodejs应用程序,它通过nginx运行。我正在尝试使用ETag添加缓存支持。 如果没有nginx,如果应用程序被直接调用它的工作。我设置了如果无匹配头,并收到一个304。 对于nginx,响应总是200。 我的Nginx配置: 快车的日志记录。 信息:HTTP GET/app/statusCode=200,url=/app/,connection=upgrade,

  • 嗨,我在执行方法时遇到清理缓存的问题。这是我的配置和缓存方法: 我要缓存的这个方法: 在执行此方法时,我希望按类型清理缓存: 新闻消息对象看起来像: 缓存工作正常,第一次查询DB时,第二次从缓存中提取数据。问题是当我更新数据时,@CacheEvict不会清理缓存。我试图使用以下注释清理所有缓存:@cacheexit(cacheNames={CacheConfiguration.RSS\u NEWS

  • 与MySQL一起提供的各种存储引擎在设计时考虑了不同的使用情况。为了更有效地使用插件式存储体系结构,最好了解各种存储引擎的优点和缺点。 在下面的表格中,概要介绍了与MySQL一起提供的存储引擎: 图14.2:存储引擎比较 下述存储引擎是最常用的: ·MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE

  • 我正在制作一个java刚体物理引擎,到目前为止它做得很好,直到我尝试实现旋转。我不知道问题出在哪里。我有使用这些网站上的公式计算凸多边形和圆的惯性矩的方法: http://lab.polygonal.de/?p=57 http://en.wikipedia.org/wiki/List_of_moments_of_inertia 这是多边形转动惯量的代码: 这是圆形的: 我知道面积函数工作正常,我已