如何在Octave中永久加载软件包?

21

我正在Windows Vista上使用Octave。 我的代码中使用了4个软件包。 但每次我重新启动Octave时,我都必须手动从命令行加载'pkg load ...'。 是否有一种方法可以永久加载它们,以便每当Octave启动时,它可以在其路径中找到它们。


4个回答

30

当Octave启动时,它会运行~/.octaverc文件。若要让Octave自动加载一个软件包,只需在其中添加pkg load pkg-name命令即可。如果该文件不存在,则需要创建它。

请注意,其他人可能没有配置Octave在启动时加载软件包。因此,如果您为他人编写代码,请记得您的程序仍然需要加载所需的软件包。

不要使用pkg install -auto ...pkg rebuild -auto ..,因为这些命令将在下一个Octave版本中停止工作。


为了完整起见,在Windows可执行文件中,octaverc文件位于: C:\Octave\Octave-4.2.1\share\octave\site\m\startup\octaverc。 希望这对那些寻找该文件的人有所帮助,因为我花了一段时间来寻找octaverc文件。 - Lye Heng Foo
1
@LyeHengFoo 并不完全正确。那是系统范围内的 octaverc 文件。对该文件的更改将应用于系统中的所有用户。这种类型的更改应该在用户的 octaverc 文件上进行,以便不影响其他任何人(如果您是唯一的用户,则可能不重要)。您要查找的文件位于您的主目录中(无论在 Windows 上 ~ 扩展到什么)。 - carandraug
1
你说得完全正确。那就是站点设置 octaverc,适用于所有用户。我刚刚发现在 Linux 上的 ~/.octaverc 实际上是 %USERPROFILE%/.octaverc。手动创建了这个文件 %USERPROFILE%/.octaverc 之后,它按预期工作了,但这次只对我有效。感谢你指出我的错误。 - Lye Heng Foo
2
使用命令 edit '~/.octaverc' 似乎可以跨平台工作。 - Mike Godin

6

我已经得到答案了。 它可以在安装包的时候设置。 使用以下命令进行安装: pkg install -auto [package name] 每次启动Octave时,它都会被加载。


或者,一旦安装完成,您可以运行 pkg rebuild -auto image,例如针对image软件包。 - Luis Mendo
2
在Octave 4.2.1中,如果我们尝试使用-auto选项,将会得到以下警告信息:warning: pkg: autoload is no longer supported. Add a 'pkg load ...' command to octaverc instead. - Lye Heng Foo

4
创建一个名为“startup.m”的文件,并将以下内容复制到其中:
packs = pkg('list');
for jj = 1:numel(packs),
  pkg('load', packs{jj}.name);
end

在目录“octave-home/share/octave/version/m/startup/octaverc”和“octave-home/share/octave/site/m/startup/octaverc”中,加载所有软件包以便在启动时使用。(https://www.gnu.org/software/octave/doc/v4.2.1/Startup-Files.html


0

在你的工作目录下安装这些软件包。然后将"pkg load pkg_name"命令添加到octave-1.1~\share\octave\site\m\startup\octaverc. 这样它每次都会加载该软件包。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接