关于从朱庇特笔记本下载文件,有很多问题有很好的答案。我之前添加的这里有一个。这是可行的,但我不能点击和下载的服务器启动的Voila文件。
最初,我意识到,当我点击Voila时,我无法下载基本的案例。
from IPython.display import display, FileLink
local_file = FileLink('./demo.xlsx', result_html_prefix="Click here to download: ")
display(local_file)

那是我笔记本上的。我可以点击该链接并下载该文件。当我用Voila开始我的笔记本时,它看起来更像..。

单击该链接为启动的服务器提供了一个404☝️
voila mynotebook.ipynb既然文件显然没有送达..。我找到了这里的链接,并试着:
voila mynotebook.ipynb --VoilaConfiguration.file_whitelist="['demo.xlsx']"但不幸的是没起作用。
我看到静态的内容可以在.我会继续在这条路上玩。以前有人这样做过吗?
发布于 2020-02-01 03:31:19
我能够让它工作,通过托管我的文件下载静态内容,就像我以前尝试的那样。所有这些都是针对Mac的,但对于其他平台来说也是一样的。
为了在static_root获得文件,我必须定义一个自定义模板,以便能够为它们提供服务。用于设置自定义模板的相关文件在这里。
并不难..。您实际上创建了一个期望的目录,复制一些默认文件,然后添加/更改您想要的内容。终端记录可能如下所示:
cd ~/Library/Jupyter/voila/templates/
mkdir foobar
export DEFAULT_TEMPLATE_PATH=~/anaconda3/envs/voilatest/share/jupyter/voila/templates/default
export TEMPLATE_PATH=~/Library/Jupyter/voila/templates/foobar
cp -r $DEFAULT_TEMPLATE_PATH/nbconvert_templates $TEMPLATE_PATH
cp -r $DEFAULT_TEMPLATE_PATH/templates $TEMPLATE_PATH在我的新自定义模板中,树看起来如下所示:
{~/Library/Jupyter/voila/templates/foobar}$ tree .
.
├── nbconvert_templates
│ ├── base.tpl
│ ├── lab.tpl
│ └── voila.tpl
├── static
│ └── demo.xlsx
└── templates
├── 404.html
├── browser-open.html
├── error.html
├── page.html
└── tree.html
3 directories, 9 files请注意带有static的demo.xlsx目录。我加进去了。这就是我想通过链接下载的文件。
像这样开始看..。
voila mynotebook.ipynb --template=foobar现在.。在mynotebook.ipynb中
使用HTML标记进行下载。至少对于我来说,FileLink失败了,出现了以下错误。
路径(/voila/静态/demo.xlsx)不存在。它可能仍在生成过程中,或者您可能有错误的路径。
这并不令人惊讶,因为存储在中的文件的实际路径不是。它恰好是静态内容uri。
%%html
<a href="./voila/static/demo.xlsx" download="demo.xlsx">Download Excel Sheet</a>使用锚将使它硬编码,我没有任何问题。无论如何,我也可以把锚的样式设计得更好。一次抓住..。这不再适用于普通的笔记本,因为它是一个URI的一个服务资源下,瞧。
https://stackoverflow.com/questions/60013197
复制相似问题