首页 > 解决方案 > oct2py 没有看到 OCTAVE_EXECUTABLE 环境变量(Windows)

问题描述

所以,我正在尝试在 Windows 上使用 oct2py,如下所示:

from oct2py import octave

这实际上是我重现错误所需的唯一代码。

当我执行此操作时,我得到OSError: Octave Executable not found, please add to path or set"OCTAVE_EXECUTABLE" environment variable. 但是,我已经设置OCTAVE_EXECUTABLE为系统变量,它指向"C:\Octave\Octave-4.4.1\bin\octave-cli-4.4.1.exe". 打开命令行并运行%OCTAVE_EXECUTABLE% 会给我 Octave CLI,所以我知道它是正确的。

我试过重启。我还尝试将 Octave 文件夹添加到我的路径中并删除OCTAVE_EXECUTABLE. 都不工作。

编辑:我也试过使用 just octave-cli.exe,我试过做print(os.environ['OCTAVE_EXECUTABLE']),它返回预期的路径。

这里有什么想法吗?

标签: pythonoctaveoct2py

解决方案


尽管您在评论中提到了什么:

似乎在某个地方,octave.exe 被 octave-cli.exe 取代。不再有随 Octave 软件包分发的 octave.exe。其他人已成功将 OCTAVE_EXECUTABLE 指向 octave-cli.exe

最近越来越多的人遇到了类似的问题,开发人员在几个小时前oct2py的版本中修复了它。5.0.0其实他们

啊,我明白这里有什么问题了。便利octave实例是在您有机会设置executable属性之前创建的。鉴于这一事实,我认为唯一正确的答案是删除可执行参数以支持使用PATHOCTAVE_EXECUTABLE环境变量。

无论如何,我必须调整我的代码以使其能够更新环境变量OCTAVE_EXECUTABLE

import shutil
import os
import sys

if sys.platform == 'win32':
    # os.environ['OCTAVE_EXECUTABLE'] = shutil.which('octave')
    # >> I had to replace this with this other line >>

    os.environ['OCTAVE_EXECUTABLE'] = shutil.which('octave-cli.exe')

推荐阅读