Mathematica:是否可以为简单包创建一个自动init.m文件

时间:2011-01-24 08:43:33

标签: wolfram-mathematica

我的大多数个人软件包只是一个m文件,比如Foo.m,但它们通常最终为Foo/Foo.m,以便我可以在Foo中存储相关的测试和备注目录也是如此。为了允许仅使用<<Foo`加载包,我包括Foo/init.m,如下所示:

With[{packagename="Foo"},
  Get@FileNameJoin@{ 
    DirectoryName@FindFile[packagename<>"`"],
    packagename<>".m"}]

只要我记得在将packagename复制到新软件包时更新init.m,这项工作正常,但我想知道是否有办法让init.m完全重复使用implementation.m这个简单的案例?

为了完整起见,我不想重命名实现{{1}}。

1 个答案:

答案 0 :(得分:3)

我不太清楚你的问题,但无论如何这是一个猜测......

你有没有试过像

这样的东西
packagename = StringDrop[DirectoryName[$Input], -1]  

在你的第一行?

编辑:供将来参考

在Janus测试之后,它变成了正确的表达式:

packagename=StringDrop[$Input,-2]