Dro*_*ror 12 wolfram-mathematica
我正在尝试找到以下循环的快捷方式.在开发mathematica的软件包时,一个是对.m
文件代码进行更改,然后想要测试另一个笔记本中的更改.这是一个无限循环......
所以,我们有一个包package.m
和一个test_package.nb
测试完成的笔记本.目前,当我在.m
文件中更改某些内容时,我必须:
Quit[]
Needs["package`"]
Run Code Online (Sandbox Code Playgroud)
在笔记本中为变化而变得可用,所以我可以测试它们.似乎没有Quit[]
它不起作用.
是否有更短的方法来迭代这个开发循环?特别是避免戒烟?
后果
如果可以,我会接受ruebenko和Leonid的答案,因为两者都有帮助并解决了我的问题.然而,由于只有一个答案可以选择,我挑ruebenko的,由于是简单和容易-只需更改Needs
到Get
我克服了我的问题.尽管如此,Leonid的包装确实更加复杂,并且可能在一天结束时产生更好的结果,但它必须安装,装载等.
作为使用简单的替代方法Get
,由@ruebenko提取(这是一个很好的建议),你可以尝试使用我写的一个包PackageManipulations`
,它可以做你想要的.它可以 在这里找到.有一个笔记本的例子说明它是如何工作的,也可以在我链接的页面上找到.包可以重新加载,清除或删除给定的包(上下文).该功能PackageReload
将专门做你想要的.
它确实使用Get
或Needs
在引擎盖下,但此外它将跟踪所谓的"转义符号"(公开导出但没有使用消息的符号,并且可能"泄漏"实现细节),并且可选地可以解决阴影问题有利于重新加载包.请注意,PackageReload
它将自动调用包Unprotect
和 ClearAll
符号,因此解决了@ruebenko提到的问题.您可以在包中附带的示例笔记本中找到更多详细信息.
请注意,虽然我自己多次使用它,但我并不认为它没有错误:)