【问题标题】:Hiding / locking cells in Azure / Jupyter notebooks在 Azure / Jupyter 笔记本中隐藏/锁定单元格
【发布时间】:2024-01-15 11:26:01
【问题描述】:

我制作了一些 jupyter notebook 来为客户处理一些工作流,我希望以客户无法看到或修改我编写的代码/功能的方式部署它们。由于他们对 python 的了解有限,重要的是他们不能访问这些函数并修改它们,其次是阻止它们被共享或出售(尽管不太可能)。他们可以在 anaconda / jupyter notebook /lab 中运行笔记本,或者通过 Azure 笔记本或某种 jupyter hub 设置运行笔记本。

代码主要由调用时提供 ipywdiget 显示的函数组成,客户端可以在其中选择多个选项来显示其数据或运行不同的计算。因此,如果他们只看到最佳的小部件。我知道可以切换单元格或隐藏输入,但这很容易解决,他们可以访问代码。是否可以使用存储在他们无法访问或修改的某个地方的 py 文件中的魔法来调用该函数?还有其他方法吗?

谢谢

【问题讨论】:

    标签: python azure jupyter-notebook jupyter


    【解决方案1】:

    也许将您的代码放在一个或多个外部模块中,然后进行混淆 模块。见这里:

    How to obfuscate Python code effectively?

    您无法阻止客户端修改“启动代码” 导入外部模块并调用 模块中的某些内容,但您可以警告/要求他们不要这样做。某物 就像在这个截图中一样

    来自https://github.com/flatironinstitute/mfa_jupyter_for_programming/blob/master/notebooks/Jupyter%20as%20a%20calculator.ipynb

    【讨论】: