我正在开发一个项目,我将笔记本作为模块导入另一个模块。 我在IPython GH上使用example,它运行正常。
但是,现在我正在尝试添加一个我需要访问函数/类方法的源代码(inspect.getsourcelines()
)的功能。
当我在一个笔记本中执行它时,该功能有效。
但是,只要我将该功能作为模块导入,检查就不能再读取源了。
这是因为代码是通过exec(code, mod.__dict__)
执行的,正如预期的那样,Python默认情况下不会允许读取源代码。
我搜索了一段时间,但还没有找到确凿的答案,所以我的问题在这里:
答案 0 :(得分:0)
所以我还没有找到一个完全可以接受的解决方案。
对于任何感兴趣的人:作为一种解决方法我使用%run filename
命令将所有内容导入本地笔记本(并打印它执行的所有输出[1])
问题:一切都是'本地'而不是子模块。这意味着导入的笔记本中定义的任何变量都是可访问的并覆盖现有的变量。这可能会有点烦人。 (但是现在我至少很高兴它在某种程度上有效)。
[1] %%capture
阻止输出并使其至少干净。