问题标签 [papermill]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jupyter-notebook - 如何使用其标签以编程方式删除 Jupyter Notebook 输入单元?
在我们最大的 ML 建模管道笔记本中,我们需要删除单个输入(代码)单元(包含在自动执行时无法通过其他方式传递的敏感信息)。
该单元已通过papermill.execute_notebook()
在另一个笔记本(控制器)中执行创建(注入),并已使用标签自动injected-parameters
标记。
解决方案(可能不是唯一的?)是在单元格执行后立即删除它。
如果搜索标签变得更加困难,那么让我们使用解决方案来删除前一个输入单元格(以编程方式)。
什么没有奏效
隐藏输入单元格还不够好,因为它仍然会保存到磁盘中(这包括report_only
papermill's 中的选项execute_notebook()
)。同样“转换”nbconvert
为 HTML(它确实允许根据标签选择要删除的单元格,如在此解决方案中一样)仍将保留原始笔记本,其中包含编码密码。
parameters - 从 CLI 运行具有不同配置的 Jupyter Notebook
我开始在我的项目中使用 Jupyter Notebook,并使用nbconvert
它从命令行运行它。
我想知道有没有办法拥有一个.ipynb
文件并使用一些命令行参数运行它或从stdin
某个地方读取?
我阅读nbconvert
了文档,但没有找到方法。
如果没有办法做类似的事情,我想知道拥有单个.ipynb
文件并使用不同配置运行的最佳做法是什么?
先感谢您。
python - zmq.error.ZMQError:地址已在使用中,当使用 papermill 对多个笔记本运行多处理时
我正在使用 papermill 库同时使用多处理运行多个笔记本。
这发生在 Docker 容器内的 Python 3.6.6、Red Hat 4.8.2-15 上。
但是,当我运行 python 脚本时,由于我收到此错误,大约 5% 的笔记本无法立即运行(没有 Jupyter Notebook 单元运行):
随着:
请帮我解决这个问题,因为我已经在网上搜索了不同的解决方案,但到目前为止没有一个对我的案例有用。
无论我同时运行的笔记本电脑数量或计算机上的内核数量如何,都会出现 5% 的错误率,这让我更加好奇。
我尝试更改启动方法并更新库,但无济于事。
我的库的版本是:
谢谢!
python - 在 docker 容器内使用造纸厂进行多处理
我面临的问题如下:
这是设置:
- 一个基础镜像为 Python:3.7.8-stretch 的 docker 容器
- Ubuntu 20.04 上的本地环境
我的目标是使用 Python 和 Papermill 包在 docker 容器内并行启动多个 jupyter notebook。
Dockerfile:
代码就在这里:
这是我用来运行容器的 docker 命令(我没有指定所有环境变量,因为我丢失了终端历史记录,抱歉):
我已经尝试了一些东西,例如并发包,但是即使笔记本执行完成,它也会在最后抛出一个错误。
这段代码的奇怪之处在于:当我在本地运行时(我通过 Pycharm 和终端启动脚本),它完成了一堆笔记本的执行,但它不在Docker 容器中;即使笔记本已经完成,进程仍然挂起,我确认了这一点,因为我可以看到 API 调用的结果。
所以,如果有什么我可以改进的问题,请告诉我。
python - 为什么我只能在使用 `pipenv run papermill` 时在我的 jupyter 笔记本中导入包?
在我必须运行一些 Jupyter 笔记本的项目中,我使用 pipenv 创建了一个虚拟环境并安装了一些包(注意我使用了--site-packages
标志)。
虽然现在我可以使用 运行笔记本,但由于某些异常pipenv run papermill ...
,我无法使用pipenv run
或从 Jupyter 运行它们。pipenv shell
ModuleNotFoundError
特别是,在第二种情况下发现的模块是仅安装在虚拟环境中的模块,而不是从全局站点继承的。
确实,如果我检查一下,sys.path
我可以看到两种情况的区别:第二种情况没有~/.local/share/virtualenvs/...
条目。
为什么我会遇到这个问题,如何解决?(如果可能的话,我宁愿不要~/.local/share/jupyter/kernels
用来自 virtualenvs 的其他内核污染我的内核)。
python - 如果不满足某些条件,使用 papermill CLI 如何更早地完成 jupyter notebook?
如果我需要提前完成代码,Papermill 会抛出异常。例如使用 quit():
我想知道是否有一种方法可以指示代码退出而不会引发异常。
例子:
python - Apache Airflow、Papermill 和自定义内核
我目前正在尝试使用 apache 气流和造纸厂执行 jupyter 笔记本。
为了使用我的自定义环境和自定义用户内核,我正在使用 BashOperator 并以这种格式运行命令
这是尝试执行后 Dag 日志的样子: Dag 日志
我一直无法使用 python 或 papermill 运算符,因为笔记本使用的内核/环境没有全局安装。
有任何想法吗?
python - 在 Jupyter Notebooks 和 Papermill 的帮助下,Airflow 中的 ETL
所以我的问题是我在 Airflow 中构建 ETL 管道,但实际上首先在 Jupyter 笔记本中开发和测试提取、转换和加载功能。所以我最终总是在我的 Airflow Python 操作符代码和 Jupyter 笔记本之间来回复制粘贴,效率非常低!我的直觉告诉我,所有这些都可以自动化。
基本上,我想在 Jupyter 中编写我的提取、转换和加载函数并让它们留在那里,同时仍然在 Airflow 中运行管道并显示提取、转换和加载任务,以及重试和 Airflow 的所有好东西开箱即用。
Papermill 能够参数化笔记本,但我真的想不出这对我有什么帮助。有人可以帮我连接点吗?
google-cloud-platform - 启动脚本运行的笔记本的工作目录不是它的真实路径,而是'/'
我有一个带有启动脚本的笔记本实例,该脚本使用 Papermill 来执行笔记本。问题是工作目录是'/'而不是文件的路径。如何获取文件的路径以便将其设置为工作目录?
这就是我更新脚本的方式: