我或多或少有以下设置。在~/path/to/my/packages我有两个包package1.m和package2.m. 例如,每个包的轮廓如下:
BeginPackage["package1`"]
Unprotect@@Names["package1`*"];
ClearAll@@Names["package1`*"];
Begin["`Private`"]
vecNorm[vec_?VectorQ]:=Module[{},Return[Sqrt[vec.vec]]];
End[]
Protect@@Names["package1`*"];
EndPackage[]
现在,我的问题是我想使用in中的vecNorm定义。如何从内部(安全地)加载?package1.mpackage2.mpackage1package2
目前,我手动加载这两个包,如下所示:
SetDirectory[StringJoin[NotebookDirectory[], "packages"]];
Needs["package1`"]
Needs["package2`"]
从保存在~/path/to/my. 我只想手动加载,而 package2这又会自动安全地加载package1。一般来说,我想要一个尽可能少地改变数学路径等的解决方案。实现这一目标的最佳实践应该是什么?
PS:安全我的意思是在将来,当我将定义package3哪个也将使用vecNorm并且将加载package1以及不会发生冲突时。