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:OctaveOctave-4.4.1binoctave-cli-4.4.1.exe" .打开命令行并运行%OCTAVE_EXECUTABLE%给了我Octave CLI,所以我知道这是对的。

我试过重新启动。我还尝试将 Octave 文件夹添加到我的路径并删除OCTAVE_EXECUTABLE .两者都不行。

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

这里有什么想法吗?

尽管

您在评论中提到了以下内容:

似乎,沿着这条线的某个地方,八度.exe被八度.exe取代了。不再有八度.exe与八度包一起分发。其他人已经成功地将OCTAVE_EXECUTABLE指向八度.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')
有两个

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

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

尝试修改您的OCTAVE_EXECUTABLE以指向该内容。虽然,从理论上讲,如果八度.exe和八度 cli.exe都位于同一个目录中,添加到路径应该有效......但无论如何都要尝试!

不确定这在 OP 后这么长时间是否有帮助,但以下是对我有用的:

  1. 将 Octave 下载为.7z文件并将其解压缩到硬盘
  2. 运行安装后.bat(从标题为 octave-5.2.0-w64 或类似内容的文件夹中(
  3. 重新启动Windows 10计算机(由于在安装后运行期间遇到消息.bat(
  4. 运行八度-第一次.vbs
  5. 退出八度程序
  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附带了一个(,然后因为我不是管理员,我想我永远无法安装它,但我解决了!

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

OCTAVE_EXECUTABLE

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

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

最新更新