【问题标题】:oct2py isn't seeing OCTAVE_EXECUTABLE environment variable (Windows)oct2py 没有看到 OCTAVE_EXECUTABLE 环境变量(Windows)
【发布时间】:2019-02-12 13:50:28
【问题描述】:

所以,我正在尝试在 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。都不行。

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

这里有什么想法吗?

【问题讨论】:

    标签: python octave oct2py


    【解决方案1】:

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

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

    最近有更多人遇到类似问题,oct2py 开发人员在几个小时前将其修复为 5.0.0 版本。其实他们said:

    啊,我明白这里有什么问题了。在您有机会设置executable 属性之前,会创建便利的octave 实例。鉴于这一事实,我认为唯一正确的答案是删除可执行参数以支持使用 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')
    

    【讨论】:

      【解决方案2】:

      有两个可执行文件,octave-cli.exe 和 octave-cli-4.4.1.exe。 如果您尝试没有版本号的那个怎么办? 我只需要重新启动 Spyder IDE 即可工作

      【讨论】:

      • 感谢您的建议...我实际上都尝试过,但没有运气。
      • @JohnChrysostom 只使用 octave.exe 而不是 octave-cli 怎么样?
      【解决方案3】:

      文档 (http://blink1073.github.io/oct2py/source/installation.html) 提到 oct2py 实际上可能是在尝试查找名为 octave.exe 的文件,而不是 octave-cli.exe

      尝试修改您的 OCTAVE_EXECUTABLE 以指向它。虽然,理论上,如果 octave.exe 和 octave-cli.exe 都位于同一个目录中,添加到路径应该可以工作......但还是试试吧!

      【讨论】:

      • 看来,在某处,octave.exe 被替换为 octave-cli.exe。不再有随 Octave 软件包分发的 octave.exe。其他人已成功将 OCTAVE_EXECUTABLE 指向 octave-cli.exe。不过,谢谢。
      • @JohnChrysostom 可能仍然值得尝试创建从 octave-cli.exe 到 octave.exe 的符号链接(或重命名)。 (PS。非常荣幸,阁下。礼仪的忠实粉丝:p)
      【解决方案4】:

      不确定这是否会在 OP 之后这么久有帮助,但这对我有用:

      1. 将 Octave 下载为 .7z 文件并将其解压缩到硬盘上
      2. 运行 post-install.bat(从名为 octave-5.2.0-w64 或类似名称的文件夹中)
      3. 重新启动 Windows 10 机器(由于在运行 post-install.bat 期间遇到消息)
      4. 运行 octave-firsttime.vbs
      5. 退出 Octave 程序
      6. 执行以下python代码(在3.7.6中)
      import os
      
      pathToExecutable = (
          'D:\\wherever\\you\\put\\this\\octave-cli.exe'
      )
      os.environ['OCTAVE_EXECUTABLE'] = pathToExecutable
      from oct2py import octave
      

      我遇到了一个问题,因为首先我没有理解我需要安装一个 Octave 解释器(我以为 oct2py 附带一个),然后因为我不是管理员,所以我想我永远不会能够安装它,但我解决了!

      【讨论】:

      • 所以我刚刚开始使用 Octave,这是有史以来第一次......上面的第 5 步可能没有必要。我所知道的是,它绝对不会导致 import 语句出错;我认为如果 Python 和 GNU Octave 同时调用解释器可能会导致问题,但话又说回来,也许不会!
      【解决方案5】:

      使用 Windows 10 和 Octave 6.2.0 的本地用户安装创建新的用户环境变量:

      OCTAVE_EXECUTABLE

      并设置为: %LOCALAPPDATA%\Programs\GNU Octave\Octave-6.2.0\mingw64\bin\octave-cli.exe

      为我工作。我不需要管理员权限。

      【讨论】:

        猜你喜欢
        • 2014-08-03
        • 1970-01-01
        • 2021-11-19
        • 1970-01-01
        • 2012-05-19
        • 1970-01-01
        • 2012-08-30
        • 2012-07-07
        • 2017-09-08
        相关资源
        最近更新 更多