我需要在终端中下载 .ipynb 文件然后运行它(使用 nbconvert
或类似的东西)。
wget
和 curl
为此,但我得到了网页(带有标签和 Javascript 代码)而不是可运行的 Notebook。 /api/contents/<path>/<file>
IE。我干脆改了notebooks
至 api/contents
在网址中。我得到了带有一些附加文本的笔记本内容(稍后我必须对其进行过滤),并且......以一行的形式。所以,我有很多工作要把这一行转换成一个工作笔记本。 是否可以通过终端下载 Jupyter Notebook 并运行 .ipynb 文件(与文件相同,可以在 Jupyter Web UI 中通过
download as .ipynb
下载)。
最佳答案
您必须使用 Authorization header 和 Content-Type application/json,然后笔记本将位于返回的字典的“内容”部分。您可以使用 jq 来获取字典的内容部分。如果在 Mac OS X 上只是 brew install jq
curl -H "Authorization: Token {YOUR_TOKEN}" -H "Content-Type: application/json" -XGET https://{YOUR_JUPYTER_DOMAIN}/user/{USERNAME}/api/contents/{PATH_TO_IPYNB} | jq ".content"
您也可以在 jq 部分 > my_downloaded.ipynb 之后添加输出重定向
然后用jupyter notebook打开
对于/user 确保您的个人服务器已启动,为此您必须登录到您的用户帐户或进入您的控制面板,如果它未打开或已被剔除。
对于/services 服务器通常被代理,因此它应该始终处于打开状态。
用于/services 的 URL
https://{YOUR_JUPYTER_DOMAIN}/services/{SERVICENAME}/api/contents/{PATH_TO_IPYNB}
关于curl - 使用 CLI 从外部 URL 下载 Jupyter Notebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45521864/